:root{
  --paper:#fbfaf4;
  --porcelain:#ffffff;
  --mist:#eef7f6;
  --ink:#142a2f;
  --ink-2:#30484e;
  --muted:#708184;
  --line:rgba(20,42,47,.13);
  --sea:#537f87;
  --sea-2:#9bc8c6;
  --gold:#b8853c;
  --gold-2:#ecd29a;
  --sand:#d8c4a5;
  --rose:#e9b99f;
  --rail:292px;
  --max:1160px;
  --shadow:0 28px 70px rgba(23,48,54,.13);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Avenir Next",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    linear-gradient(90deg,rgba(255,255,255,.8) 0 1px,transparent 1px) 0 0/74px 74px,
    radial-gradient(circle at 82% 8%,rgba(155,200,198,.38),transparent 32rem),
    linear-gradient(180deg,#fff,var(--paper) 58%,#f5eee1);
  line-height:1.68;
}
body:before{
  content:"";
  position:fixed;
  inset:0 auto 0 0;
  width:var(--rail);
  background:linear-gradient(180deg,#fffaf0,#eef8f7 42%,#f7ead7);
  border-right:1px solid var(--line);
  z-index:-1;
}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
.skip-link{position:absolute;left:-999px;top:1rem;background:var(--ink);color:white;padding:.7rem 1rem;z-index:50}
.skip-link:focus{left:1rem}
.site-header{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--rail);
  z-index:30;
  padding:2rem 1.45rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2rem;
  background:rgba(255,250,240,.82);
  backdrop-filter:blur(20px);
  border-right:1px solid var(--line);
}
.brand{display:block;text-decoration:none}
.brand-logo{width:100%;max-width:238px;height:auto}
.brand-mark,.brand strong,.brand em{display:none}
.nav-toggle{display:none}
.site-nav{display:flex;flex-direction:column;gap:.4rem;margin-top:2rem}
.site-nav a{
  position:relative;
  text-decoration:none;
  padding:.76rem 0 .76rem 2.2rem;
  color:var(--ink-2);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.site-nav a:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1.35rem;
  height:1px;
  background:var(--gold);
  transform:scaleX(.35);
  transform-origin:left;
  transition:transform .22s ease;
}
.site-nav a:hover:before{transform:scaleX(1)}
main,.site-footer{margin-left:var(--rail)}
.hero{
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
  align-items:center;
  gap:clamp(2rem,5vw,5rem);
  padding:clamp(2rem,5vw,5rem);
  overflow:hidden;
}
.hero-media{order:2;position:relative;align-self:stretch;min-height:620px}
.hero-media:before{
  content:"";
  position:absolute;
  inset:2.2rem -2rem -2rem 2.2rem;
  background:linear-gradient(135deg,var(--sea-2),var(--gold-2));
  opacity:.34;
  z-index:0;
}
.hero-media img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:42% 0 42% 0;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.72);
}
.hero-copy{order:1;max-width:620px}
.eyebrow,.kicker{
  margin:0 0 .8rem;
  color:var(--gold);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.hero h1{
  margin:.1rem 0 1.15rem;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(3.7rem,7.2vw,7.8rem);
  line-height:.88;
  letter-spacing:0;
}
.dek{font-size:clamp(1.05rem,1.45vw,1.34rem);color:var(--ink-2);max-width:560px}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.2rem}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.78rem 1.15rem;
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:0;
  font-weight:800;
  letter-spacing:.04em;
  transition:transform .22s ease,background .22s ease,box-shadow .22s ease;
}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--ink);color:white;box-shadow:0 18px 45px rgba(20,42,47,.18)}
.button.ghost{background:rgba(255,255,255,.72);color:var(--ink)}
.breadcrumbs{display:flex;gap:.55rem;align-items:center;margin-bottom:1rem;color:var(--muted);font-size:.92rem}
.breadcrumbs a{text-decoration:none;color:var(--sea)}
.intro-panel{
  width:min(var(--max),calc(100% - 3rem));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:2rem;
  padding:clamp(2rem,4vw,3.5rem) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.lead{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.28rem,2.2vw,2rem);line-height:1.35;color:var(--ink)}
.intro-panel aside{align-self:end;padding:1.25rem;background:var(--ink);color:#fff}
.intro-panel aside span,.intro-panel aside a{display:block;color:#dbe9e8;text-decoration:none}
.intro-panel aside strong{display:block;margin:.25rem 0;font-size:1.42rem;color:#fff}
.content-grid{
  width:min(var(--max),calc(100% - 3rem));
  margin:clamp(4rem,7vw,7rem) auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:clamp(2rem,5vw,4.5rem);
}
.article-body{
  columns:2 330px;
  column-gap:clamp(2rem,4vw,4rem);
}
.article-body h2,.section-heading h2,.cta-band h2{
  margin:.2rem 0 1rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3.35rem);
  line-height:1;
  font-weight:400;
  break-after:avoid;
}
.article-body p{margin:0 0 1.25rem;color:#354c52;font-size:1.02rem}
.article-body a,.cta-band a:not(.button){color:#315f69;font-weight:800}
.side-links{
  position:sticky;
  top:2rem;
  align-self:start;
  padding:1.2rem;
  background:#fff;
  box-shadow:var(--shadow);
  border-left:4px solid var(--gold);
}
.side-links h2{margin:.1rem 0 .8rem;font-size:.83rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}
.side-links a{display:block;padding:.68rem 0;text-decoration:none;border-top:1px solid var(--line);color:var(--ink-2);font-weight:760}
.related-section,.faq-section,.cta-band,.gallery-studio{
  width:min(var(--max),calc(100% - 3rem));
  margin:clamp(4rem,7vw,7rem) auto;
}
.section-heading{display:grid;grid-template-columns:220px 1fr;gap:2rem;align-items:end;margin-bottom:1.4rem}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.related-card{
  min-height:210px;
  padding:1.1rem;
  background:rgba(255,255,255,.88);
  text-decoration:none;
  transition:background .22s ease,transform .22s ease;
}
.related-card:hover{background:var(--mist);transform:translateY(-3px)}
.related-card span{display:block;font-family:Georgia,serif;font-size:1.28rem;line-height:1.08;margin-bottom:.75rem}
.related-card small{display:block;color:var(--muted);font-size:.86rem;line-height:1.45}
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.faq-list details{background:#fff;padding:1.2rem}
.faq-list summary{cursor:pointer;font-weight:850;color:var(--ink)}
.faq-list p{margin:.75rem 0 0;color:var(--muted)}
.cta-band{
  position:relative;
  padding:clamp(2.2rem,5vw,4.5rem);
  color:#fff;
  background:
    linear-gradient(120deg,rgba(20,42,47,.94),rgba(49,95,105,.8)),
    linear-gradient(90deg,var(--ink),var(--sea));
  overflow:hidden;
}
.cta-band:after{
  content:"";
  position:absolute;
  inset:auto -8rem -12rem auto;
  width:28rem;
  height:28rem;
  border:1px solid rgba(236,210,154,.5);
  border-radius:50%;
}
.cta-band .kicker,.cta-band p{color:#eef8f7}
.cta-band p{position:relative;max-width:820px}
.cta-band h2{position:relative;max-width:900px}
.contact-form-section{
  width:min(var(--max),calc(100% - 3rem));
  margin:clamp(3rem,6vw,6rem) auto;
  display:grid;
  grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
  padding:clamp(2rem,4vw,3.5rem);
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.contact-form-copy h2{
  margin:.2rem 0 1rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:.98;
  font-weight:400;
}
.contact-form-copy p{color:var(--ink-2);margin:0 0 1rem}
.contact-methods{
  margin-top:1.5rem;
  padding-top:1.1rem;
  border-top:1px solid var(--line);
}
.contact-methods a{display:block;color:var(--sea);font-weight:850;text-decoration:none;margin:.35rem 0}
.question-form{display:grid;gap:1rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-field{display:grid;gap:.35rem}
.form-field.full{grid-column:1/-1}
.form-field label{
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold);
}
.form-field input,.form-field select,.form-field textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:0;
  background:#fbfaf4;
  color:var(--ink);
  padding:.9rem .95rem;
  font:inherit;
}
.form-field textarea{min-height:150px;resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:2px solid rgba(184,133,60,.28);
  border-color:var(--gold);
  background:#fff;
}
.form-note{font-size:.9rem;color:var(--muted);margin:.1rem 0 0}
.form-status{
  display:none;
  padding:1rem;
  background:var(--mist);
  border-left:4px solid var(--gold);
  color:var(--ink);
  font-weight:750;
}
.form-status.is-visible{display:block}
.site-footer{
  display:grid;
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:2rem;
  padding:clamp(2.5rem,5vw,5rem);
  background:#424343;
  color:#eef8f7;
}
.site-footer a{display:block;color:#cfe5e5;text-decoration:none;margin:.35rem 0}
.site-footer h2{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2)}
.footer-brand strong{font-family:Georgia,serif;font-size:1.7rem;font-weight:400}
.footer-brand p{color:#cfe5e5}
.gallery-studio{margin-top:2rem}
.gallery-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  align-items:center;
  justify-content:space-between;
  padding:1rem 0 1.5rem;
  border-bottom:1px solid var(--line);
}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem}
.filter-button{
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  padding:.62rem .8rem;
  cursor:pointer;
  font:inherit;
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.filter-button.is-active{background:var(--ink);color:#fff}
.gallery-count{color:var(--muted);font-size:.92rem}
.gallery-mosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
  margin-top:1.4rem;
}
.gallery-item{
  grid-column:span 4;
  position:relative;
  min-height:260px;
  border:0;
  padding:0;
  background:#ddd;
  cursor:pointer;
  overflow:hidden;
  text-align:left;
}
.gallery-item:nth-child(7n+1){grid-column:span 7;min-height:410px}
.gallery-item:nth-child(7n+2){grid-column:span 5;min-height:410px}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.gallery-item:hover img{transform:scale(1.035);filter:saturate(1.04)}
.gallery-item span{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:1.8rem 1rem .9rem;
  color:#fff;
  font-weight:800;
  background:linear-gradient(0deg,rgba(0,0,0,.58),transparent);
}
.lightbox{
  position:fixed;
  inset:0;
  z-index:80;
  display:none;
  place-items:center;
  padding:clamp(1rem,4vw,3rem);
  background:rgba(10,24,28,.82);
}
.lightbox.is-open{display:grid}
.lightbox-inner{width:min(1200px,100%);background:#fff;box-shadow:var(--shadow)}
.lightbox img{width:100%;max-height:78vh;object-fit:contain;background:#111}
.lightbox-caption{display:flex;justify-content:space-between;gap:1rem;padding:1rem;color:var(--ink)}
.lightbox-close{position:absolute;top:1rem;right:1rem;border:1px solid rgba(255,255,255,.3);background:#fff;color:var(--ink);padding:.65rem .85rem;cursor:pointer}
.reveal{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (max-width:1080px){
  :root{--rail:0px}
  body:before{display:none}
  main,.site-footer{margin-left:0}
  .site-header{position:sticky;inset:auto;width:auto;min-height:0;flex-direction:row;align-items:center;padding:.8rem 1rem}
  .brand-logo{width:210px}
  .nav-toggle{display:inline-flex;border:1px solid var(--line);background:#fff;padding:.65rem .9rem;color:var(--ink)}
  .site-nav{position:absolute;top:100%;left:1rem;right:1rem;display:none;background:#fff;box-shadow:var(--shadow);padding:1rem;margin:0}
  .site-nav.is-open{display:flex}
  .site-nav a{padding:.7rem 0 .7rem 2rem}
  .hero{grid-template-columns:1fr;padding:1rem 1rem 3rem;min-height:auto}
  .hero-media{order:1;min-height:420px}
  .hero-copy{order:2}
  .hero h1{font-size:clamp(3rem,13vw,5.4rem)}
  .intro-panel,.content-grid{grid-template-columns:1fr}
  .contact-form-section{grid-template-columns:1fr}
  .article-body{columns:1}
  .section-heading{grid-template-columns:1fr;gap:.25rem}
  .related-grid,.faq-list,.site-footer{grid-template-columns:1fr}
  .gallery-item,.gallery-item:nth-child(7n+1),.gallery-item:nth-child(7n+2){grid-column:span 12;min-height:310px}
}
@media (max-width:620px){
  .brand-logo{width:178px}
  .hero-media{min-height:330px}
  .hero-media img{border-radius:34% 0 34% 0}
  .hero-actions{display:grid}
  .intro-panel,.content-grid,.related-section,.faq-section,.cta-band,.gallery-studio{width:min(100% - 2rem,var(--max))}
  .contact-form-section{width:min(100% - 2rem,var(--max));padding:1.25rem}
  .form-grid{grid-template-columns:1fr}
}
