/* Harbor Interiors — coastal editorial wallpaper studio */
:root{--ink:#102a35;--ink2:#183b47;--cream:#f4f0e7;--paper:#fffdf8;--sea:#5c817a;--sea2:#aac1b6;--coral:#bf765e;--sand:#dfd5c2;--muted:#627078;--line:rgba(16,42,53,.15);--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif;--shadow:0 18px 50px rgba(14,35,43,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.62}img{display:block;max-width:100%;height:auto}a{color:inherit}button,input,textarea{font:inherit}.skip-link{position:absolute;left:-9999px;top:auto}.skip-link:focus{left:1rem;top:1rem;z-index:1000;background:white;padding:.8rem}
.site-header{position:relative;z-index:10;background:var(--cream);border-bottom:1px solid var(--line)}.header-inner{max-width:1440px;margin:auto;padding:0 5vw;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;min-width:max-content}.brand-mark{width:42px;height:42px;border-radius:50% 50% 4px 50%;display:grid;place-items:center;background:var(--ink);color:var(--cream);font:1.35rem var(--serif);transform:rotate(-8deg)}.brand-name{font:1.05rem var(--serif);letter-spacing:.01em;line-height:1.2}.brand-name small{display:block;font:700 .59rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sea);margin-top:.22rem}.primary-nav{display:flex;align-items:center;gap:clamp(.8rem,2vw,2rem)}.primary-nav a,.header-actions a{font-size:.82rem;font-weight:700;text-decoration:none;letter-spacing:.035em}.primary-nav a:hover,.footer-links a:hover{color:var(--sea)}.header-actions{display:flex;align-items:center;gap:1rem}.phone-link{white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;border:1px solid var(--ink);border-radius:2px;padding:.7rem 1.1rem;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;font-size:.84rem;letter-spacing:.035em;cursor:pointer;transition:transform .2s,background .2s,color .2s}.button:hover{transform:translateY(-2px);background:var(--sea);border-color:var(--sea)}.button-light{background:transparent;color:var(--ink)}.button-light:hover{color:#fff}.menu-details{display:none}.eyebrow{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--sea)}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.025em}h1{font-size:clamp(2.7rem,5.5vw,5.7rem);margin:.7rem 0 1rem}h2{font-size:clamp(2rem,3.5vw,3.5rem);margin:.5rem 0 1rem}h3{font-size:clamp(1.35rem,2vw,1.85rem);margin:.2rem 0 .65rem}p{margin:.4rem 0 1rem}.muted{color:var(--muted)}.section{padding:clamp(4rem,7vw,7rem) 5vw}.container{max-width:1280px;margin:0 auto}.section-top{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.section-top p{max-width:500px;color:var(--muted);margin:0}.rule{border:0;border-top:1px solid var(--line);margin:0}
.hero{max-width:1600px;margin:auto;display:grid;grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr);min-height:min(760px,calc(100vh - 84px));background:var(--ink);color:var(--cream)}.hero-copy{padding:clamp(2rem,5vw,5rem) clamp(1.4rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.hero .eyebrow{color:#b5c9be}.hero h1{max-width:700px;font-size:clamp(2.5rem,4.3vw,4.65rem)}.hero-intro{max-width:520px;color:#e1e7e2;font-size:1.02rem}.hero-geo{margin-top:1.15rem;color:#cfdbd5;font-size:.82rem}.hero-geo strong{color:white}.hero-photo{position:relative;min-height:610px;overflow:hidden;background:#60716b}.hero-photo picture,.hero-photo img{width:100%;height:100%;position:absolute;inset:0}.hero-photo img{object-fit:cover;object-position:53% center}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,42,53,.10),transparent 25%);pointer-events:none}.hero-stamp{position:absolute;z-index:1;right:1.4rem;bottom:1.4rem;display:flex;align-items:center;gap:.7rem;padding:.75rem 1rem;background:rgba(16,42,53,.87);color:#fff;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.hero-stamp span{color:#d3b28f;font-size:1.2rem}.hero-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.25rem}.hero-actions .button-light{color:#fff;border-color:rgba(255,255,255,.55)}.hero-actions .button-light:hover{background:#fff;color:var(--ink)}.lead-card{margin-top:1.5rem;background:var(--paper);color:var(--ink);padding:1.2rem 1.3rem 1.1rem;border-left:4px solid var(--coral);box-shadow:0 12px 34px rgba(0,0,0,.2);max-width:560px}.lead-card h2{font:1.35rem var(--serif);margin:0 0 .2rem}.lead-card>p{font-size:.76rem;color:var(--muted);margin:.1rem 0 .8rem}.lead-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem .72rem}.field{min-width:0}.field-wide{grid-column:1/-1}.field label{display:block;font-size:.69rem;font-weight:700;margin:0 0 .25rem;color:#344c55}.field input,.field textarea{display:block;width:100%;min-width:0;border:1px solid #bcc8c1;border-radius:2px;background:#fff;color:var(--ink);padding:.65rem .72rem;min-height:43px;line-height:1.25;outline:0}.field textarea{min-height:64px;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(92,129,122,.19)}.field .error-message{color:#a33e2d!important;font-size:.76rem!important;margin-top:.2rem!important}.form-note{font-size:.69rem;color:var(--muted);margin:0}.form-submit{min-height:44px;width:100%;grid-column:1/-1}.form-success,.form-alert{display:none;padding:.8rem 1rem;margin:.5rem 0 0;border-radius:2px;font-size:.9rem}.form-success{background:#e3eee8;color:#153c31}.form-alert{background:#fff0e9;color:#772d1d}.form-privacy{font-size:.65rem;color:var(--muted);grid-column:1/-1;margin:0}.form-privacy a{color:var(--ink)}
.marquee{background:var(--sea);color:white;padding:.72rem 5vw;text-align:center;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.marquee b{font-weight:700}.intro-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,7vw,8rem);align-items:start}.intro-grid .lead{font:clamp(1.35rem,2.1vw,2rem)/1.38 var(--serif);max-width:780px}.intro-grid .side-note{border-left:1px solid var(--coral);padding-left:1.2rem;color:var(--muted);max-width:300px;font-size:.9rem}.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.service-item{background:var(--paper);padding:1.55rem 1.5rem 1.4rem;min-height:190px;display:flex;flex-direction:column}.service-item .number{color:var(--coral);font-size:.68rem;letter-spacing:.16em;font-weight:700}.service-item p{color:var(--muted);font-size:.9rem;margin:.15rem 0 0}.text-link{font-size:.82rem;font-weight:700;text-decoration:none;border-bottom:1px solid var(--sea);padding-bottom:.12rem;align-self:flex-start;margin-top:auto;padding-top:1rem}.text-link:hover{color:var(--sea)}
.gallery{display:grid;grid-template-columns:1.12fr .88fr .88fr;gap:1rem;align-items:start}.gallery figure{margin:0;background:var(--paper);box-shadow:var(--shadow)}.gallery figure:nth-child(2){margin-top:3.5rem}.gallery figure:nth-child(3){margin-top:1.4rem}.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.gallery figcaption{padding:.85rem 1rem 1rem;font:1rem var(--serif)}.gallery .caption-small{display:block;color:var(--muted);font: .72rem var(--sans);margin-top:.28rem}.split-callout{display:grid;grid-template-columns:1fr 1fr;min-height:390px;background:var(--ink);color:#fff}.split-callout img{width:100%;height:100%;min-height:390px;object-fit:cover}.split-callout>div{padding:clamp(2rem,6vw,5rem);align-self:center}.split-callout h2{max-width:520px}.split-callout p{color:#d6dfda;max-width:480px}.service-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.service-block{background:var(--paper);padding:2rem;border-top:3px solid var(--sea);box-shadow:0 10px 35px rgba(14,35,43,.06)}.service-block p{color:var(--muted)}.service-block ul{padding-left:1.15rem;color:var(--muted)}.service-block li{padding:.16rem 0}.service-image{margin:1rem 0 1.1rem;overflow:hidden}.service-image img{width:100%;aspect-ratio:16/9;object-fit:cover}.small-image{max-width:700px;margin:2rem auto}.small-image img{width:100%;aspect-ratio:16/8;object-fit:cover}.small-image figcaption{font-size:.75rem;color:var(--muted);margin-top:.5rem}
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.step{padding:1.5rem 1.5rem 1rem 0;border-bottom:1px solid var(--line);counter-increment:step}.step:before{content:"0" counter(step);display:block;font-size:.7rem;letter-spacing:.16em;color:var(--coral);font-weight:700;margin-bottom:1.3rem}.step p{font-size:.9rem;color:var(--muted);max-width:360px}.guide-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}.guide-grid aside{background:#e4e7df;padding:1.5rem;position:sticky;top:1rem}.guide-grid aside a{display:block;text-decoration:none;padding:.4rem 0;border-bottom:1px solid rgba(16,42,53,.12);font-size:.86rem}.prose{max-width:800px}.prose h2{font-size:clamp(1.75rem,3vw,2.55rem);margin-top:2.4rem}.prose h3{margin-top:1.5rem}.prose p,.prose li{color:#40545b}.prose ul{padding-left:1.25rem}.faq-list{border-top:1px solid var(--line)}.faq-item{padding:1.35rem 0;border-bottom:1px solid var(--line)}.faq-item h3{font-size:1.4rem}.faq-item p{max-width:850px;color:var(--muted);margin:.45rem 0 0}.contact-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(2rem,5vw,5rem);align-items:start}.contact-card{background:var(--paper);padding:2rem;box-shadow:var(--shadow)}.contact-details{list-style:none;padding:0;margin:1.4rem 0}.contact-details li{padding:.7rem 0;border-bottom:1px solid var(--line)}.contact-details strong{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--sea);margin-bottom:.12rem}.contact-details a{text-decoration:none}.map-frame{width:100%;height:430px;border:0;background:#dbe3dd}.map-caption{font-size:.74rem;color:var(--muted);margin:.5rem 0 0}.breadcrumb{padding:1rem 5vw .25rem;font-size:.75rem;color:var(--muted)}.breadcrumb ol{max-width:1280px;margin:0 auto;padding:0;list-style:none;display:flex;gap:.55rem;flex-wrap:wrap}.breadcrumb li+li:before{content:"/";margin-right:.55rem;color:#9ca9a4}.breadcrumb a{text-decoration:none}.page-hero{max-width:1280px;margin:0 auto;padding:2.4rem 5vw 2.5rem}.page-hero h1{font-size:clamp(2.7rem,5vw,4.8rem);max-width:1000px}.page-hero p{color:var(--muted);max-width:720px;font-size:1.05rem}.legal-copy{max-width:860px;margin:0 auto}.legal-copy h1{font-size:clamp(2.5rem,4vw,4.3rem)}.legal-copy h2{font-size:1.65rem;margin-top:2rem}.legal-copy p{color:#43555b}.floating-cta{position:fixed;z-index:30;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));box-shadow:0 8px 26px rgba(14,35,43,.3);border-radius:999px;padding:.75rem 1.1rem;min-height:50px}.site-footer{background:#0c2029;color:#f2f0e8;padding:3.5rem 5vw 2rem}.footer-inner{max-width:1280px;margin:auto;display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:2.5rem}.site-footer .brand-mark{background:var(--sea);color:white}.site-footer p{color:#c1ceca;font-size:.85rem;max-width:330px}.footer-links{display:grid;gap:.4rem;align-content:start}.footer-links strong{font:1.1rem var(--serif);margin-bottom:.4rem}.footer-links a{font-size:.82rem;color:#d6dfda;text-decoration:none}.footer-bottom{max-width:1280px;margin:2.5rem auto 0;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#b8c7c2;font-size:.7rem}.footer-bottom a{color:inherit}.no-js-note{background:#fff0e9;color:#772d1d;padding:.6rem;font-size:.8rem}
@media(max-width:1050px){.header-inner{padding:0 3vw}.primary-nav{gap:.8rem}.header-actions .phone-link{display:none}.hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.hero-copy{padding:2rem 2.5rem}.hero h1{font-size:clamp(2.5rem,5vw,4.3rem)}.service-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){html{scroll-padding-top:20px}.header-inner{min-height:72px;padding:0 1rem}.primary-nav{display:none}.header-actions .button{display:none}.header-actions .phone-link{display:inline-flex;font-size:.75rem}.brand-name{font-size:.95rem}.brand-mark{width:37px;height:37px}.menu-details{display:block;margin-left:auto;order:3;position:relative}.menu-details summary{cursor:pointer;list-style:none;border:1px solid var(--line);padding:.4rem .65rem;font-size:.77rem;font-weight:700}.menu-details summary::-webkit-details-marker{display:none}.mobile-menu{position:absolute;right:0;top:calc(100% + .5rem);width:min(270px,90vw);padding:.6rem;background:var(--paper);box-shadow:var(--shadow);display:grid;z-index:20}.mobile-menu a{padding:.7rem .5rem;text-decoration:none;border-bottom:1px solid var(--line);font-size:.9rem}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:2.2rem 1.2rem 1.5rem;order:1}.hero h1{font-size:clamp(2.5rem,12vw,4rem)}.hero-photo{order:0;min-height:340px;height:48vh;max-height:520px}.hero-photo:after{background:linear-gradient(0deg,rgba(16,42,53,.22),transparent 60%)}.hero-stamp{font-size:.62rem;right:.7rem;bottom:.7rem}.hero-actions{margin-top:1rem}.lead-card{max-width:none;margin-top:1.3rem;padding:1.1rem}.lead-form{gap:.55rem}.section{padding:3.4rem 1.2rem}.section-top{display:block;margin-bottom:1.8rem}.section-top p{margin-top:.7rem}.intro-grid,.contact-grid,.guide-grid{grid-template-columns:1fr;gap:1.5rem}.intro-grid .side-note{max-width:none}.service-list{grid-template-columns:1fr}.service-item{min-height:0;padding:1.2rem}.gallery{grid-template-columns:1fr 1fr;gap:.7rem}.gallery figure:nth-child(2),.gallery figure:nth-child(3){margin-top:0}.gallery figure:first-child{grid-column:1/-1}.gallery figcaption{font-size:.88rem;padding:.65rem}.gallery .caption-small{font-size:.65rem}.split-callout{grid-template-columns:1fr}.split-callout img{min-height:260px;height:260px;order:0}.split-callout>div{padding:2rem 1.2rem;order:1}.service-columns{grid-template-columns:1fr;gap:1rem}.service-block{padding:1.3rem}.steps{grid-template-columns:1fr}.step{padding:1.2rem 0}.step:before{margin-bottom:.65rem}.guide-grid aside{position:static;order:0}.prose{order:1}.page-hero{padding:1.6rem 1.2rem 1rem}.page-hero h1{font-size:clamp(2.6rem,11vw,4rem)}.breadcrumb{padding:1rem 1.2rem .2rem}.contact-card{padding:1.3rem}.map-frame{height:340px}.footer-inner{grid-template-columns:1fr 1fr;gap:1.5rem}.footer-inner>div:first-child{grid-column:1/-1}.footer-bottom{margin-top:1.8rem}.floating-cta{min-height:48px;right:max(.7rem,env(safe-area-inset-right));bottom:max(.7rem,env(safe-area-inset-bottom));font-size:.77rem;padding:.65rem .9rem}.marquee{padding:.65rem 1rem;font-size:.66rem}}
@media(max-width:410px){.header-actions .phone-link{display:none}.lead-form{grid-template-columns:1fr}.field-wide,.form-submit,.form-privacy{grid-column:1}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}.footer-inner{grid-template-columns:1fr}.footer-inner>div:first-child{grid-column:auto}.hero-actions .button{width:100%}.lead-card{margin-left:-.15rem;margin-right:-.15rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
@media(min-width:761px){.hero-copy{padding:clamp(.7rem,.7vw,1.1rem) clamp(1.2rem,4vw,4rem)}.hero h1{font-size:clamp(2.45rem,3.3vw,4.2rem)}.lead-card{margin-top:0;padding:.95rem 1.05rem .9rem}.lead-card>p{margin:.1rem 0 .55rem}.lead-form{gap:.45rem .62rem}.field input,.field textarea{padding:.55rem .65rem;min-height:39px}.field textarea{min-height:52px}}

@media(max-width:760px){.floating-cta{display:none}}
.page-home .floating-cta,.page-contact .floating-cta{display:none}
