@font-face{font-family:Oregano;src:url('assets/oregano-latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('assets/dm-sans-latin.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
:root{
  --pine:#123d30;--pine-dark:#103529;--ink:#193e32;--paper:#faf8f0;--blush:#f2b8ca;
  --berry:#923a5b;--rule:#d0d5c7;--muted:#465b51;--gutter:clamp(24px,5.2vw,88px);
  font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);
  font-synthesis:none;-webkit-text-size-adjust:100%;scroll-behavior:smooth;
}
*{box-sizing:border-box}
body{margin:0}
body:has(dialog[open]){overflow:hidden}
[hidden]{display:none!important}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b34872;outline-offset:4px}
.hero a:focus-visible,.light:focus-visible{outline-color:#fff}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3,.card-title{font-family:Oregano,Georgia,serif;font-weight:400}
.symbols{height:0;width:0;display:block;overflow:hidden;position:absolute}
.icon{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:fixed;z-index:20;top:10px;left:10px;background:white;padding:12px 20px;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.header-inner,.section-wrap,.footer-inner,.approach-inner{max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}
.header-inner{min-height:83px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{width:clamp(211px,20vw,290px);padding-block:10px}
.masthead nav{display:flex;align-items:center;gap:clamp(20px,3.2vw,52px);font-size:14px;font-weight:500}
.nav-link,.text-link,.back-top{text-underline-offset:5px}
.nav-link:hover,.text-link:hover,.back-top:hover{text-decoration:underline}
.nav-enquire,.dark-button,.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;padding:13px 23px;font-weight:600;font-size:14px;line-height:1.3;transition:background .18s,color .18s}
.nav-enquire,.dark-button{background:var(--pine);color:var(--paper)}
.nav-enquire{min-height:42px;padding:11px 19px}
.nav-enquire .icon{width:15px;height:15px}
.nav-enquire:hover,.dark-button:hover{background:#255542}
.hero{display:grid;grid-template-columns:51% 49%;background:var(--pine);color:var(--paper)}
.hero-copy{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:clamp(480px,39.7vw,650px);padding:clamp(52px,5.25vw,91px) clamp(32px,3.1vw,60px) clamp(55px,5.6vw,90px) max(var(--gutter),calc((100vw - 1600px)/2 + var(--gutter)));background:linear-gradient(115deg,#103c2e,#184535)}
.hero-inner{position:relative}
.location,.eyebrow{display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:.165em;text-transform:uppercase;font-weight:600;line-height:1.5}
.location{color:#eddbbb}
.location span,.eyebrow span{width:28px;height:1px;background:currentColor}
h1{margin:25px 0 21px;font-size:clamp(64px,6.65vw,110px);line-height:.98;letter-spacing:-.026em}
h1 em{color:var(--blush);font-style:normal}
.hero-intro{font-size:clamp(15px,1.15vw,18px);line-height:1.62;max-width:39ch;color:#f4f2e6}
.hero-button{background:var(--blush);color:#20392c;margin-top:28px;gap:24px}
.hero-button:hover{background:#ffcfde}
.citrus-engraving{position:absolute;bottom:-9%;right:-8%;width:39%;opacity:.39;transform:rotate(-10deg);z-index:-1;pointer-events:none}
.hero-feature{position:relative;isolation:isolate;min-width:0;overflow:hidden;background:#38412b}
.hero-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-feature:after{content:'';position:absolute;inset:48% 0 0;background:linear-gradient(transparent 10%,rgba(8,20,12,.76));pointer-events:none}
.feature-bar{position:absolute;z-index:1;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(18px,2.5vw,44px) 23px;color:#fff}
.feature-label{display:flex;gap:14px;align-items:center;font-size:14px;font-weight:500;text-shadow:0 1px 5px #0008}
.feature-count{font-size:11px;letter-spacing:.08em;white-space:nowrap;font-variant-numeric:tabular-nums;border-right:1px solid #fff9;padding-right:13px}
.feature-count b{font-weight:600}
.controls{display:flex;gap:8px;align-items:center}
.round,.card-arrow{width:44px;height:44px;border:1px solid #acbcae;border-radius:50%;background:transparent;color:var(--pine);display:inline-grid;place-items:center;flex:none}
.round:hover{background:#e7eadf}
.round.light{border-color:#ffffffa8;color:#fff;background:#1230244d}
.round.light:hover{background:#163729d9}
.section-wrap{padding-block:clamp(48px,4.5vw,76px) clamp(61px,6vw,100px)}
.section-title-row{display:flex;align-items:center;gap:clamp(22px,3vw,50px);margin-bottom:27px}
h2{font-size:clamp(43px,4.1vw,67px);line-height:1.05;letter-spacing:-.025em}
.title-rule{display:flex;align-items:center;gap:12px;flex:1}
.title-rule span{height:1px;background:var(--rule);flex:1}
.spark{width:16px;height:16px;color:var(--berry)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(15px,2.1vw,36px)}
.gallery-card{display:block}
.card-photo{display:block;overflow:hidden;aspect-ratio:4/3;background:#e5e4d5}
.card-photo picture,.dialog-photo picture{display:block;width:100%;height:100%}
.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.gallery-card:hover .card-photo picture,.dialog-photo picture{display:block;width:100%;height:100%}
.card-photo img{transform:scale(1.025)}
.card-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;padding:16px 1px 0}
.card-title{font-size:clamp(27px,2.4vw,39px);line-height:1.2;display:block}
.card-detail{display:block;color:var(--muted);font-size:14px;line-height:1.55;margin-top:5px}
.card-arrow{width:32px;height:32px;margin-top:2px}
.card-arrow .icon{width:15px;height:15px}
.gallery-card:hover .card-arrow{background:var(--pine);color:#fff}
.approach{background:#e9edde}
.approach-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,7.5vw,130px);padding-block:clamp(48px,5.5vw,90px)}
.approach-photo{position:relative;aspect-ratio:6/5;overflow:hidden}
/* Keep her eyes on the upper third as the frame changes size. */
.approach-photo img{position:absolute;right:0;top:29%;width:148%;max-width:none;height:auto;transform:translateY(-32%)}
.eyebrow{color:var(--berry);margin-bottom:20px}
.approach-copy>p:not(.eyebrow),.enquiry-copy>p:not(.eyebrow){font-size:16px;line-height:1.65;color:var(--muted);max-width:42ch;margin:18px 0 0}
.text-link{display:inline-flex;align-items:center;gap:15px;padding:12px 0 6px;border-bottom:1px solid var(--pine);font-size:14px;font-weight:600;margin-top:16px}
.text-link:hover{text-decoration:none;color:var(--berry);border-color:var(--berry)}
.enquiries{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:clamp(58px,6vw,100px)}
.enquiry-copy>p:not(.eyebrow){max-width:57ch}
footer{border-top:1px solid var(--rule)}
.footer-inner{min-height:90px;display:flex;align-items:center;gap:28px;font-size:13px;color:var(--muted)}
.footer-inner img{width:170px}
.back-top{display:inline-flex;align-items:center;gap:12px;margin-left:auto;min-height:44px}
.back-top .icon{transform:rotate(-90deg);width:14px}
dialog{color:var(--ink);background:var(--paper);border:0;box-shadow:0 12px 90px #0a1d2760;padding:0;max-height:94dvh}
dialog::backdrop{background:rgba(9,24,18,.85)}
.gallery-dialog{width:min(800px,calc(100% - 32px))}
.dialog-top,.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px}
.dialog-top h2{font-size:36px}
.dialog-photo{height:min(59dvh,610px);background:#12291f}
.dialog-photo img{width:100%;height:100%;object-fit:contain}
.gallery-position{font-size:11px;color:var(--berry);letter-spacing:.1em;font-weight:600}
#gallery-caption{margin:3px 0 0;font-size:16px;line-height:1.4}
@media(min-width:1700px){.hero-copy{min-height:660px}}
@media(max-width:900px){
  :root{--gutter:clamp(24px,4.3vw,42px)}
  .hero-copy{padding-right:23px;min-height:439px}
  h1{font-size:clamp(53px,7.4vw,70px)}
  .hero-intro{font-size:15px}
  .feature-label{align-items:flex-start;flex-direction:column;gap:5px}
  .feature-count{border:0}
  .approach-inner{gap:35px}
  .card-detail{font-size:13px}
}
@media(max-width:680px){
  .header-inner{min-height:66px;gap:8px}
  .wordmark{width:clamp(158px,47vw,225px)}
  .nav-link{display:none}
  .nav-enquire{font-size:13px;min-height:44px;padding:11px 13px;gap:9px}
  .hero{grid-template-columns:1fr}
  .hero-copy{min-height:0;padding:39px var(--gutter) 38px}
  h1{font-size:clamp(60px,13vw,82px);margin:18px 0 16px}
  .location,.eyebrow{font-size:10px}
  .hero-intro{max-width:41ch}
  .hero-button{margin-top:21px}
  .citrus-engraving{width:33%;bottom:-12%;right:-4%}
  .hero-feature{aspect-ratio:4/3}
  .feature-bar{padding:0 var(--gutter) 16px}
  .feature-label{flex-direction:row;align-items:center;gap:11px;font-size:13px}
  .feature-count{border-right:1px solid #fff9;padding-right:10px}
  .gallery-grid{grid-template-columns:1fr;gap:32px}
  .card-title{font-size:34px}
  .card-detail{font-size:14px}
  .card-caption{padding-top:12px}
  .section-title-row{margin-bottom:21px}
  .approach-inner{grid-template-columns:1fr;gap:27px}
  .eyebrow{margin-bottom:13px}
  .enquiries{align-items:flex-start;flex-direction:column;gap:24px}
  .footer-inner{flex-wrap:wrap;justify-content:space-between;gap:14px 16px;padding-block:22px}
  .footer-inner>span{order:3;flex-basis:100%}
  .footer-inner img{width:155px}
}
@media(max-width:365px){
  :root{--gutter:18px}
  h1{font-size:56px}
  .feature-label{flex-direction:column;align-items:flex-start;gap:2px}
  .feature-count{border:0}
  .dialog-top,.dialog-bottom{padding:12px}
}
@media(prefers-reduced-motion:reduce){
  :root{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
