/* Pretty Good Publishing — shared styles
   Palette: navy blue + silver. Type: Fraunces (display serif) + Public Sans (body).
   Fonts are self-hosted in ./fonts/ — no external requests. */

@font-face{font-family:"Fraunces";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/fraunces-500.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/fraunces-600.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:500;font-display:swap;src:url("fonts/fraunces-500-italic.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/publicsans-400.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/publicsans-500.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/publicsans-600.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/publicsans-700.woff2") format("woff2");}

:root{
  --navy-deep:#050C1F; --navy:#0A1734; --navy-panel:#0E2148; --navy-2:#16305F;
  --silver:#C9D1DE; --silver-bright:#EFF3F9; --silver-soft:#9FADC2; --silver-mist:#D9E0EC;
  --mist:#F4F6FA; --paper:#FCFDFE;
  --ink:#152238; --ink-soft:#43536B;
  --line:#DFE5EE; --line-dark:rgba(201,209,222,.22);
  --eyebrow-light:#52637E;
  --radius:18px;
  --shadow:0 18px 50px rgba(6,14,34,.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:"Public Sans","Segoe UI",Helvetica,Arial,sans-serif; line-height:1.65; font-size:17px; -webkit-font-smoothing:antialiased;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
h1,h2,h3{font-family:"Fraunces",Georgia,"Times New Roman",serif; font-weight:600; line-height:1.16; color:var(--ink); letter-spacing:-.01em;}
h2{font-size:clamp(1.7rem,3.4vw,2.15rem); margin-bottom:.55em;}
h3{font-size:1.22rem; margin-bottom:.4em;}
p{margin-bottom:1em;}
a{color:#17457E;}
a:focus-visible,.btn:focus-visible{outline:3px solid #7FA6D9; outline-offset:3px; border-radius:6px;}
.eyebrow{font-size:.76rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase; color:var(--eyebrow-light); margin-bottom:18px;}
.eyebrow::before{content:""; display:inline-block; width:34px; height:1px; background:#93A2B8; vertical-align:middle; margin-right:12px;}
section{padding:78px 0;}
.band-mist{background:var(--mist);}
.band-navy{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%); color:var(--silver-mist);}
.band-navy h2,.band-navy h3{color:var(--silver-bright);}
.band-navy .eyebrow{color:var(--silver-soft);}
.band-navy .eyebrow::before{background:var(--silver-soft);}
.lede{font-size:1.13rem; color:var(--ink-soft); max-width:44em;}
.band-navy .lede{color:var(--silver-mist);}

/* Buttons */
.btn{display:inline-block; background:linear-gradient(180deg,#F4F7FB,#CBD4E1); color:var(--navy); font-weight:700; text-decoration:none; padding:15px 30px; border-radius:999px; font-size:1.03rem; border:1px solid #93A2B8; box-shadow:0 10px 30px rgba(3,8,20,.35);}
.btn:hover{background:linear-gradient(180deg,#FFFFFF,#D9E0EB);}
.btn.ghost{background:rgba(8,18,40,.25); color:var(--silver-bright); border:1px solid rgba(201,209,222,.55); box-shadow:none;}
.btn.ghost:hover{background:rgba(8,18,40,.5);}
.btn.navy{background:linear-gradient(180deg,var(--navy-2),var(--navy)); color:var(--silver-bright); border:1px solid #2A4476; box-shadow:0 12px 28px rgba(6,14,34,.25);}
.btn.navy:hover{background:linear-gradient(180deg,#1D4076,#0D1D42);}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; margin:22px 0 6px;}

/* Header */
header.site{background:var(--navy-deep); border-bottom:1px solid var(--line-dark);}
.header-in{display:flex; justify-content:space-between; align-items:center; padding:18px 0; gap:18px; flex-wrap:wrap;}
.brand{display:flex; align-items:center; gap:13px; text-decoration:none;}
.brand .mark{flex:none; width:46px; height:46px; border:1px solid rgba(201,209,222,.6); border-radius:12px; background:linear-gradient(160deg,var(--navy-panel),var(--navy-deep)); display:flex; align-items:center; justify-content:center; font-family:"Fraunces",Georgia,serif; font-weight:600; font-size:1.12rem; color:var(--silver-bright); letter-spacing:.02em;}
.brand .wordmark{font-family:"Fraunces",Georgia,serif; font-weight:600; font-size:1.28rem; color:var(--silver-bright); line-height:1.2;}
.brand small{display:block; font-family:"Public Sans",sans-serif; font-weight:600; font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:var(--silver-soft); margin-top:3px;}
nav.main{display:flex; gap:26px; flex-wrap:wrap; align-items:center;}
nav.main a{color:var(--silver); text-decoration:none; font-size:.95rem; font-weight:500;}
nav.main a:hover{color:#fff;}
nav.main a[aria-current="page"]{color:#fff; border-bottom:2px solid var(--silver);}
nav.main a.cta{border:1px solid var(--silver-soft); padding:8px 18px; border-radius:999px; color:var(--silver-bright);}
nav.main a.cta:hover{background:rgba(201,209,222,.12);}

/* Hero (home) */
.hero{position:relative; background:linear-gradient(168deg,var(--navy-panel) 0%,var(--navy) 42%,var(--navy-deep) 100%); overflow:hidden;}
.hero-rings{position:absolute; right:-190px; top:-190px; width:640px; height:640px; opacity:.5; pointer-events:none;}
.hero-in{position:relative; padding:96px 0 88px;}
.hero .eyebrow{color:var(--silver-soft);}
.hero .eyebrow::before{background:var(--silver-soft);}
.hero h1{color:var(--silver-bright); font-size:clamp(2.4rem,5.6vw,3.7rem); max-width:14.5em; margin-bottom:.5em; font-weight:500;}
.hero h1 em{font-style:italic; color:var(--silver);}
.hero .promise{font-size:1.22rem; line-height:1.6; color:var(--silver-mist); max-width:38em; margin-bottom:.7em;}
.hero .cred{font-size:1rem; color:var(--silver); max-width:40em; margin-bottom:0;}
.hero-rule{width:64px; height:2px; background:linear-gradient(90deg,var(--silver-bright),rgba(201,209,222,0)); margin:30px 0 0; border-radius:2px;}

/* Page hero (inner pages) */
.page-hero{background:linear-gradient(168deg,var(--navy-panel) 0%,var(--navy) 45%,var(--navy-deep) 100%); padding:70px 0 62px; position:relative; overflow:hidden;}
.page-hero h1{color:var(--silver-bright); font-size:clamp(2rem,4.6vw,3rem); font-weight:500; max-width:16em; margin-bottom:.45em;}
.page-hero p{color:var(--silver-mist); font-size:1.13rem; max-width:42em; margin-bottom:0;}
.page-hero .eyebrow{color:var(--silver-soft);}
.page-hero .eyebrow::before{background:var(--silver-soft);}

/* Windows / tiles */
.windows-head{max-width:46em; margin-bottom:44px;}
.tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.tile{position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px 26px; box-shadow:0 6px 24px rgba(6,14,34,.05); transition:transform .18s ease, box-shadow .18s ease;}
.tile:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
.tile .icon{width:56px; height:56px; border-radius:16px; background:linear-gradient(160deg,var(--navy-2),var(--navy)); display:flex; align-items:center; justify-content:center; margin-bottom:20px; flex:none;}
.tile .icon svg{width:29px; height:29px; stroke:var(--silver-bright); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.tile h3{font-size:1.3rem;}
.tile p{color:var(--ink-soft); font-size:.99rem; margin-bottom:0; flex:1;}
.tile .tile-foot{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}
.tile .price{font-weight:700; color:var(--navy); font-size:.95rem; white-space:nowrap;}
.tile .price small{display:block; font-weight:500; color:var(--ink-soft); font-size:.76rem; letter-spacing:.02em;}
.tile .more{font-weight:600; font-size:.95rem; text-decoration:none; white-space:nowrap;}
.tile .more:hover{text-decoration:underline;}
.tag-soon{position:absolute; top:18px; right:18px; background:linear-gradient(180deg,#EDF1F7,#D3DBE7); color:var(--navy); border:1px solid #B9C4D4; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:5px 11px; border-radius:999px;}
.tile.soon{background:linear-gradient(180deg,#FFFFFF,#F7F9FC);}
.tile.soon .icon{background:linear-gradient(160deg,#5B6E8C,#43536B);}

/* How we work */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:8px;}
.step{background:rgba(255,255,255,.045); border:1px solid var(--line-dark); border-radius:var(--radius); padding:30px 26px;}
.step-num{display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(180deg,#F4F7FB,#CBD4E1); color:var(--navy); font-weight:700; border:1px solid #93A2B8; border-radius:50%; width:38px; height:38px; font-size:1.02rem; margin-bottom:16px;}
.step h3{font-family:"Public Sans",Arial,sans-serif; font-size:1.06rem; font-weight:700; letter-spacing:-.01em; color:var(--silver-bright); margin-bottom:.45em;}
.step p{color:var(--silver-mist); font-size:.97rem; margin-bottom:0;}

/* About */
.about-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:44px; align-items:start;}
.about-card{background:var(--navy); border-radius:var(--radius); padding:34px 32px; color:var(--silver-mist);}
.about-card h3{color:var(--silver-bright); font-size:1.25rem;}
.about-card ul{list-style:none;}
.about-card li{padding:11px 0; border-bottom:1px solid var(--line-dark); font-size:.99rem;}
.about-card li:last-child{border-bottom:none; padding-bottom:0;}
.about-card li strong{color:var(--silver-bright); font-weight:600;}

/* Contact band (home) */
.contact-band .big-mail{font-family:"Fraunces",Georgia,serif; font-size:clamp(1.45rem,3.6vw,2.1rem); font-weight:500; color:var(--silver-bright); text-decoration:none; word-break:break-all;}
.contact-band .big-mail:hover{text-decoration:underline;}
.contact-band .phone-line{font-size:1.15rem; color:var(--silver-mist); margin-top:10px;}
.contact-band .phone-line a{color:var(--silver-bright); text-decoration:none; font-weight:600;}
.contact-band .phone-line a:hover{text-decoration:underline;}

/* Services page */
.jump{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.jump a{background:#fff; border:1px solid var(--line); color:var(--navy); text-decoration:none; font-weight:600; font-size:.9rem; padding:8px 16px; border-radius:999px;}
.jump a:hover{border-color:#93A2B8; background:var(--mist);}
.svc{padding:64px 0;}
.svc + .svc{border-top:1px solid var(--line);}
.svc.alt{background:var(--mist);}
.svc-grid{display:grid; grid-template-columns:64px 1fr; gap:8px 26px; max-width:880px;}
.svc .icon{width:56px; height:56px; border-radius:16px; background:linear-gradient(160deg,var(--navy-2),var(--navy)); display:flex; align-items:center; justify-content:center; grid-row:span 1;}
.svc .icon svg{width:29px; height:29px; stroke:var(--silver-bright); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.svc h2{margin-bottom:.35em;}
.svc .body{grid-column:2;}
.svc p{color:var(--ink-soft); max-width:44em;}
.svc .price-row{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:20px;}
.svc .price-chip{background:var(--navy); color:var(--silver-bright); font-weight:700; padding:9px 18px; border-radius:999px; font-size:.98rem;}
.svc .price-chip.light{background:linear-gradient(180deg,#EDF1F7,#D3DBE7); color:var(--navy); border:1px solid #B9C4D4;}
.svc .mail-link{font-weight:600; text-decoration:none;}
.svc .mail-link:hover{text-decoration:underline;}

/* Contact page */
.contact-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 6px 24px rgba(6,14,34,.05); padding:40px; max-width:760px;}
.contact-row{display:flex; gap:18px; align-items:flex-start; padding:20px 0; border-bottom:1px solid var(--line);}
.contact-row > div{min-width:0;}
.contact-row .value{overflow-wrap:anywhere;}
.contact-row:first-child{padding-top:0;}
.contact-row .icon{width:48px; height:48px; border-radius:14px; background:linear-gradient(160deg,var(--navy-2),var(--navy)); display:flex; align-items:center; justify-content:center; flex:none;}
.contact-row .icon svg{width:24px; height:24px; stroke:var(--silver-bright); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.contact-row h3{font-family:"Public Sans",Arial,sans-serif; font-size:.8rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--eyebrow-light); margin-bottom:4px;}
.contact-row .value{font-size:1.18rem; font-weight:600; color:var(--ink);}
.contact-row .value a{color:var(--ink); text-decoration:none;}
.contact-row .value a:hover{text-decoration:underline;}
.contact-row p{color:var(--ink-soft); font-size:.97rem; margin:2px 0 0;}
.include-list{margin:8px 0 0 1.2em; color:var(--ink-soft);}
.include-list li{margin-bottom:.45em;}

/* Footer */
footer.site{background:var(--navy-deep); color:var(--silver-soft); padding:48px 0 54px; font-size:.93rem; border-top:1px solid var(--line-dark);}
footer.site a{color:var(--silver); text-decoration:none;}
footer.site a:hover{color:#fff; text-decoration:underline;}
.footer-grid{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:24px;}
.f-brand{font-family:"Fraunces",Georgia,serif; font-size:1.22rem; color:var(--silver-bright); margin-bottom:6px;}
.f-col h4{font-size:.76rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--silver-soft); margin-bottom:12px;}
.f-col ul{list-style:none;}
.f-col li{margin-bottom:8px;}
.f-legal{border-top:1px solid var(--line-dark); padding-top:18px; margin-bottom:0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;}

/* V2 additions: included lists, buy rows, placeholder tiles */
.svc h3.sub{font-family:"Public Sans",Arial,sans-serif; font-size:.78rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--eyebrow-light); margin:26px 0 10px;}
.svc ul.inc{list-style:none; margin:0;}
.svc ul.inc li{position:relative; padding-left:27px; margin-bottom:.5em; color:var(--ink-soft); max-width:44em;}
.svc ul.inc li::before{content:"\2713"; position:absolute; left:2px; top:0; color:#17457E; font-weight:700;}
.svc ul.inc li strong{color:var(--ink); font-weight:600;}
.svc .fine{font-size:.92rem; color:var(--ink-soft); max-width:44em; margin-top:16px; margin-bottom:0;}
.svc .price-row .btn{text-decoration:none;}
.btn.sm{padding:12px 24px; font-size:.98rem;}
/* Photo restoration gallery */
.gallery{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:18px 0 6px; max-width:880px;}
.g-pair{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; box-shadow:0 6px 24px rgba(6,14,34,.05);}
.g-imgs{display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start;}
.g-imgs figure{margin:0;}
.g-imgs img{display:block; width:100%; height:auto; border-radius:10px; border:1px solid var(--line);}
.g-tag{display:inline-block; font-size:.66rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; padding:4px 11px; border-radius:999px; margin-bottom:8px;}
.g-tag.b{background:linear-gradient(180deg,#EDF1F7,#D3DBE7); color:var(--navy); border:1px solid #B9C4D4;}
.g-tag.a{background:var(--navy); color:var(--silver-bright);}
.g-cap{font-size:.94rem; color:var(--ink-soft); margin:12px 0 0; max-width:none;}
.tile.placeholder{border:1.5px dashed #B9C4D4; background:transparent; box-shadow:none;}
.tile.placeholder:hover{transform:none; box-shadow:none;}
.tile.placeholder .icon{background:linear-gradient(160deg,#8CA0BC,#6C7F9B);}
.tile.placeholder h3{color:var(--ink-soft);}

/* Responsive */
@media (max-width:1020px){
  .tiles{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  section{padding:58px 0;}
  .gallery{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;}
  .svc-grid{grid-template-columns:1fr;}
  .svc .body{grid-column:1;}
  .svc .icon{margin-bottom:14px;}
  .hero-in{padding:64px 0 60px;}
}
@media (max-width:600px){
  .tiles{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .header-in{padding:14px 0;}
  nav.main{gap:16px;}
  .brand .wordmark{font-size:1.12rem;}
  .contact-card{padding:28px 22px;}
  .contact-row .value{font-size:1.04rem;}
  .contact-band .big-mail{font-size:1.16rem;}
  .btn{padding:14px 24px;}
}
