:root{
  --paper:#faf8f4;
  --paper-deep:#f2ede3;
  --ink:#221f1c;
  --stone:#8b8175;
  --line:#e2dbcd;
  --wine:#6e2a3b;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:300;
  overflow-x:hidden;
}
::selection{background:var(--wine);color:var(--paper);}
a{color:inherit;}
img{max-width:100%;display:block;}

.eyebrow{
  font-family:'Jost', sans-serif;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--stone);
}

/* HEADER */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,248,244,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 56px;
  flex-wrap:wrap;
  gap:16px;
}
.logo img{
  display:block;
  height:36px;
  width:36px;
  object-fit:contain;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size:1.5rem;
  letter-spacing:.03em;
  text-decoration:none;
  color:var(--ink);
}
nav ul{
  list-style:none;
  display:flex;flex-wrap:wrap;gap:34px;
}
nav a{
  text-decoration:none;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:4px;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, color .3s ease;
}
nav a:hover, nav a:focus-visible{border-color:var(--wine);color:var(--wine);}
nav a:focus-visible{outline:none;}
nav a.current{border-color:var(--ink);}

/* HERO — full-bleed editorial */
.hero{
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  position:relative;
  padding:0 56px 90px;
  overflow:hidden;
}
.hero-slides{
  position:absolute;inset:0;
  z-index:0;
}
.hero-slide{
  position:absolute;inset:0;
  background:linear-gradient(135deg, var(--g1), var(--g2));
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  opacity:0;
  transition:opacity 1.1s ease;
}
.hero-slide.active{opacity:1;}
.hero-overlay{
  position:absolute;inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(34,31,28,0) 38%, rgba(34,31,28,.6) 100%);
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:760px;
}
.hero-dots{
  position:absolute;
  right:56px;
  bottom:34px;
  z-index:3;
  display:flex;
  gap:10px;
}
.hero-dot{
  width:8px;height:8px;
  border-radius:50%;
  background:rgba(250,248,244,.4);
  border:1px solid rgba(250,248,244,.7);
  padding:0;
  cursor:pointer;
  transition:background .3s ease, transform .3s ease;
}
.hero-dot.active{background:var(--paper);transform:scale(1.2);}
.hero-dot:focus-visible{outline:1px solid var(--paper); outline-offset:3px;}
.hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  background:transparent;
  border:1px solid rgba(250,248,244,.5);
  color:var(--paper);
  width:44px;height:44px;
  border-radius:50%;
  font-family:'Cormorant Garamond', serif;
  font-size:1.4rem;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease, border-color .3s ease;
}
.hero-arrow:hover, .hero-arrow:focus-visible{background:rgba(250,248,244,.15);border-color:var(--paper);}
.hero-arrow.prev{left:56px;}
.hero-arrow.next{right:56px;}
@media (max-width: 640px){
  .hero-arrow{display:none;}
  .hero-dots{right:22px;bottom:22px;}
}
.hero .eyebrow{
  color:#f2ede3;
  margin-bottom:22px;
}
.hero h1{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:clamp(2.6rem, 6.5vw, 5.4rem);
  line-height:1.05;
  color:var(--paper);
  letter-spacing:.01em;
}
.hero h1 em{
  font-style:italic;
  font-weight:400;
}
.hero-sub{
  margin-top:26px;
  max-width:480px;
  color:#efe9dd;
  font-size:1.05rem;
  line-height:1.7;
  font-weight:300;
}
.hero-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:38px;
  text-decoration:none;
  color:var(--paper);
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(250,248,244,.5);
  padding-bottom:6px;
  transition:border-color .3s ease, gap .3s ease;
}
.hero-cta:hover, .hero-cta:focus-visible{border-color:var(--paper); gap:16px;}
.hero-cta:focus-visible{outline:1px solid var(--paper); outline-offset:6px;}

/* SECTION HEADERS (generic) */
.section-head{
  padding:100px 56px 40px;
  text-align:center;
}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:clamp(1.9rem, 4vw, 3.2rem);
  max-width:20ch;
  margin:0 auto;
  letter-spacing:.01em;
}
.section-head h2 em{font-style:italic;}
.section-head p{
  max-width:520px;
  margin:22px auto 0;
  color:var(--stone);
  line-height:1.75;
  font-size:.98rem;
}

/* STATEMENT / intro paragraph */
.statement{
  max-width:820px;
  margin:0 auto;
  padding:20px 56px 100px;
  text-align:center;
}
.statement p{
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.3rem, 2.4vw, 1.9rem);
  font-style:italic;
  line-height:1.6;
  color:var(--ink);
}

/* OFFERINGS / QUICK LINKS (home) */
.offerings{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.offering{
  padding:60px 40px;
  text-align:center;
  text-decoration:none;
  color:var(--ink);
  border-right:1px solid var(--line);
  transition:background .3s ease;
}
.offering:last-child{border-right:none;}
.offering:hover, .offering:focus-visible{background:var(--paper-deep);}
.offering:focus-visible{outline:none;}
.offering .num{
  font-family:'Jost', sans-serif;
  font-size:.68rem;
  letter-spacing:.2em;
  color:var(--wine);
  display:block;
  margin-bottom:20px;
}
.offering h3{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:500;
  font-size:1.7rem;
  margin-bottom:14px;
}
.offering p{color:var(--stone);font-size:.9rem;line-height:1.6;}

/* PREVIEW GALLERY STRIP (home) */
.preview-strip{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:2px;
  background:var(--line);
  border-bottom:1px solid var(--line);
}
.preview-tile{
  height:400px;
  background:linear-gradient(150deg, var(--g1), var(--g2));
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  position:relative;
  text-decoration:none;
  display:flex;
  align-items:flex-end;
  padding:14px;
}
.preview-tile::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.45) 100%);
}
.preview-tile span{
  position:relative;z-index:2;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:.88rem;
  color:#faf8f4;
}
.pt-creative{--g1:#5c4632; --g2:#a9855c;}
.pt-fashion{--g1:#2c2925; --g2:#6b6154;}
.pt-influencers{--g1:#7a5a3a; --g2:#cfae7c;}
.pt-newborn{--g1:#b79b85; --g2:#eadfcf;}
.pt-wedding{--g1:#241f1a; --g2:#8a6b56;}
.pt-editing{--g1:#3e4a45; --g2:#8fa79c;}

/* GALLERY / PORTFOLIO TABS */
.gallery-tabs{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0;
  padding:0 56px;
  border-bottom:1px solid var(--line);
}
.gallery-tab{
  font-family:'Jost', sans-serif;
  font-size:.74rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--stone);
  background:transparent;
  border:none;
  padding:26px 26px;
  cursor:pointer;
  position:relative;
  transition:color .3s ease;
}
.gallery-tab::after{
  content:"";
  position:absolute;left:26px;right:26px;bottom:0;
  height:2px;
  background:var(--wine);
  transform:scaleX(0);
  transition:transform .3s ease;
}
.gallery-tab:hover{color:var(--ink);}
.gallery-tab:focus-visible{outline:1px solid var(--wine); outline-offset:2px;}
.gallery-tab.active{color:var(--ink);}
.gallery-tab.active::after{transform:scaleX(1);}

.gallery-section{
  padding:70px 56px 110px;
  display:none;
}
.gallery-section.active{display:block;animation:fadeIn .5s ease both;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:translateY(0);}}

.gallery-section-head{
  text-align:center;
  max-width:600px;
  margin:0 auto 54px;
}
.gallery-section-head h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.8rem, 3.5vw, 2.8rem);
  margin-bottom:16px;
}
.gallery-section-head p{color:var(--stone);line-height:1.7;font-size:.96rem;}

.frame-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:30px 24px;
  max-width:820px;
  margin:0 auto;
}
.frame-trigger{
  display:block;
  width:100%;
  padding:0;
  border:1px solid var(--line);
  background:none;
  cursor:pointer;
  transition:opacity .25s ease;
}
.frame-trigger:hover, .frame-trigger:focus-visible{opacity:.85;}
.frame-trigger:focus-visible{outline:2px solid var(--wine); outline-offset:3px;}
.frame-art{
  aspect-ratio:4/5;
  width:100%;
  background:linear-gradient(150deg, var(--g1), var(--g2));
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:block;
}
.frame-caption{
  margin-top:16px;
  text-align:center;
}
.frame-caption strong{
  display:none;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.1rem;
  margin-bottom:4px;
}
.frame-caption span{
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stone);
}

#creative .frame-art{--g1:#5c4632; --g2:#a9855c;}
#fashion .frame-art{--g1:#2c2925; --g2:#6b6154;}
#influencers .frame-art{--g1:#7a5a3a; --g2:#cfae7c;}
#newborn .frame-art{--g1:#b79b85; --g2:#eadfcf;}
#wedding .frame-art{--g1:#241f1a; --g2:#8a6b56;}
#editing .frame-art{--g1:#3e4a45; --g2:#8fa79c;}

/* LIGHTBOX */
.lightbox{
  position:fixed;
  inset:0;
  z-index:999;
  background:rgba(18,15,12,.95);
  display:none;
  align-items:center;
  justify-content:center;
  padding:32px;
}
.lightbox.open{display:flex;}
.lightbox-stage{
  display:flex;
  flex-direction:column;
  align-items:center;
  max-width:100%;
}
.lightbox-image{
  width:min(560px, 82vw);
  aspect-ratio:4/5;
  max-height:70vh;
  border:1px solid rgba(250,248,244,.2);
  background-color:#3a3128;
  background-size:cover;
  background-position:center;
}
.lightbox-caption{
  margin-top:22px;
  text-align:center;
}
.lightbox-caption strong{
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.3rem;
  color:var(--paper);
  margin-bottom:6px;
}
.lightbox-caption span{
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#c8c0b2;
}
.lightbox-caption .lightbox-count{
  display:block;
  margin-top:8px;
  color:#8a8175;
}
.lightbox-close, .lightbox-arrow{
  position:fixed;
  background:transparent;
  border:1px solid rgba(250,248,244,.4);
  color:var(--paper);
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease, border-color .3s ease;
  z-index:1000;
}
.lightbox-close:hover, .lightbox-close:focus-visible,
.lightbox-arrow:hover, .lightbox-arrow:focus-visible{
  background:rgba(250,248,244,.15);
  border-color:var(--paper);
}
.lightbox-close{
  top:24px;right:28px;
  width:42px;height:42px;
  font-size:1.5rem;
  line-height:1;
}
.lightbox-arrow{
  top:50%;
  transform:translateY(-50%);
  width:48px;height:48px;
  font-family:'Cormorant Garamond', serif;
  font-size:1.6rem;
}
.lightbox-arrow.prev{left:24px;}
.lightbox-arrow.next{right:24px;}

@media (max-width: 640px){
  .lightbox{padding:16px;}
  .lightbox-image{width:min(420px, 78vw); max-height:56vh;}
  .lightbox-close{top:14px;right:14px;width:36px;height:36px;font-size:1.3rem;}
  .lightbox-arrow{width:38px;height:38px;font-size:1.3rem;}
  .lightbox-arrow.prev{left:10px;}
  .lightbox-arrow.next{right:10px;}
  .lightbox-caption strong{font-size:1.1rem;}
}

/* QUOTE / TESTIMONIAL SLIDER */
.quote-block{
  padding:90px 56px;
  text-align:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
}
.testimonial-track{
  max-width:760px;
  margin:0 auto;
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.testimonial-slide{display:none;}
.testimonial-slide.active{display:block;animation:fadeIn .6s ease both;}
.testimonial-slide blockquote{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:clamp(1.3rem, 2.6vw, 2.1rem);
  line-height:1.5;
  margin-bottom:22px;
}
.testimonial-slide cite{
  font-style:normal;
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--stone);
}
.testimonial-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:40px;
}
.testimonial-dot{
  width:8px;height:8px;
  border-radius:50%;
  background:transparent;
  border:1px solid var(--stone);
  padding:0;
  cursor:pointer;
  transition:background .3s ease, border-color .3s ease, transform .3s ease;
}
.testimonial-dot.active{background:var(--wine);border-color:var(--wine);transform:scale(1.2);}
.testimonial-dot:focus-visible{outline:1px solid var(--wine); outline-offset:3px;}
.testimonial-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:transparent;
  border:1px solid var(--line);
  color:var(--ink);
  width:40px;height:40px;
  border-radius:50%;
  font-family:'Cormorant Garamond', serif;
  font-size:1.3rem;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .3s ease, color .3s ease;
}
.testimonial-arrow:hover, .testimonial-arrow:focus-visible{border-color:var(--wine);color:var(--wine);}
.testimonial-arrow.prev{left:56px;}
.testimonial-arrow.next{right:56px;}
@media (max-width: 760px){
  .testimonial-arrow{display:none;}
}

/* GALLERY SHOWCASE */
.gallery-showcase{
  padding:90px 56px;
  background:var(--paper-deep);
}
.gallery-showcase .section-head{
  padding:0 0 60px 0;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.gallery-item{
  aspect-ratio:1/1;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  border:1px solid var(--line);
  cursor:pointer;
  transition:transform .3s ease, filter .3s ease;
}
.gallery-item:hover{
  transform:scale(1.02);
  filter:brightness(0.95);
}

/* ABOUT — split story */
.story{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding:20px 56px 100px;
  align-items:center;
}
.story-figure{
  aspect-ratio:4/5;
  background:linear-gradient(150deg, #5c4632, #a9855c);
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  border:1px solid var(--line);
}
.story-copy .eyebrow{margin-bottom:20px;}
.story-copy h2{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.8rem, 3.2vw, 2.6rem);
  margin-bottom:24px;
}
.story-copy p{color:var(--stone);line-height:1.85;margin-bottom:18px;font-size:1rem;}
.story-copy p:last-child{margin-bottom:0;}

.stats-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stat{
  padding:54px 30px;
  text-align:center;
  border-right:1px solid var(--line);
}
.stat:last-child{border-right:none;}
.stat strong{
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:2.8rem;
  color:var(--wine);
  margin-bottom:8px;
}
.stat span{
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--stone);
}

.values{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:50px;
  padding:20px 56px 110px;
  max-width:1100px;
  margin:0 auto;
}
.value{text-align:center;}
.value .num{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.5rem;
  color:var(--wine);
  display:block;
  margin-bottom:16px;
}
.value h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size:1.25rem;
  margin-bottom:12px;
}
.value p{color:var(--stone);font-size:.92rem;line-height:1.7;}

/* SERVICES */
.service-list{
  max-width:920px;
  margin:0 auto;
  padding:20px 56px 110px;
}
.service-row{
  display:grid;
  grid-template-columns:70px 1.3fr 1.6fr auto;
  align-items:center;
  gap:30px;
  padding:36px 0;
  border-bottom:1px solid var(--line);
}
.service-row:first-child{border-top:1px solid var(--line);}
.service-row .num{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.6rem;
  color:var(--wine);
}
.service-row h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size:1.5rem;
}
.service-row p{color:var(--stone);font-size:.92rem;line-height:1.65;}
.service-row a{
  justify-self:end;
  white-space:nowrap;
  text-decoration:none;
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid var(--ink);
  padding-bottom:4px;
  transition:color .3s ease, border-color .3s ease;
}
.service-row a:hover, .service-row a:focus-visible{color:var(--wine);border-color:var(--wine);}
.service-row a:focus-visible{outline:none;}

.cta-band{
  padding:100px 56px;
  text-align:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.cta-band h2{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.8rem, 3.5vw, 2.8rem);
  margin-bottom:20px;
}
.cta-band p{color:var(--stone);margin-bottom:34px;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.7;}
.btn{
  display:inline-block;
  text-decoration:none;
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--paper);
  background:var(--ink);
  padding:16px 34px;
  transition:background .3s ease;
}
.btn:hover, .btn:focus-visible{background:var(--wine);}

/* FOOTER — minimal centered */
footer{
  padding:80px 56px 40px;
  text-align:center;
}
.footer-tagline{
  color:var(--stone);
  max-width:420px;
  margin:0 auto 34px;
  font-size:.95rem;
  line-height:1.7;
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  font-size:1.2rem;
}
.footer-links{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stone);
  margin-bottom:40px;
}
.footer-links a{
  text-decoration:none;
  color:var(--ink);
  padding-bottom:2px;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, color .3s ease;
}
.footer-links a:hover, .footer-links a:focus-visible{color:var(--wine);border-color:var(--wine);}
.footer-links a:focus-visible{outline:none;}
.footer-address{
  color:var(--stone);
  font-size:.85rem;
  line-height:1.7;
  margin-bottom:34px;
}
.footer-bottom{
  padding-top:30px;
  border-top:1px solid var(--line);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--stone);
}

/* CONTACT PAGE */
.contact-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:70px;
  padding:90px 56px 110px;
  max-width:1200px;
  margin:0 auto;
}
.contact-form-wrap h2, .contact-side h2{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.7rem, 3vw, 2.3rem);
  margin:16px 0 32px;
}
.contact-form-wrap .eyebrow, .contact-side .eyebrow{margin-bottom:0;}

.form-row{margin-bottom:22px;}
.form-row.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:0;
}
.form-row.two-col > div{margin-bottom:22px;}
.contact-form label{
  display:block;
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stone);
  margin-bottom:10px;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  padding:10px 2px;
  font-family:'Jost', sans-serif;
  font-weight:300;
  font-size:.98rem;
  color:var(--ink);
  transition:border-color .3s ease;
}
.contact-form textarea{resize:vertical;min-height:110px;}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--wine);
}
.contact-form select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b8175' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 4px center;
  padding-right:20px;
}
.contact-form .btn{
  border:none;
  cursor:pointer;
  margin-top:8px;
}
.form-note{
  margin-top:20px;
  font-size:.85rem;
  color:var(--stone);
  line-height:1.6;
}
.form-note a{color:var(--wine);text-decoration:none;border-bottom:1px solid var(--wine);}

.map-frame{
  width:100%;
  aspect-ratio:4/3;
  border:1px solid var(--line);
  overflow:hidden;
  filter:grayscale(.15) contrast(1.02);
}
.map-directions{
  display:inline-block;
  margin-top:16px;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink);
  border-bottom:1px solid var(--ink);
  padding-bottom:4px;
  transition:color .3s ease, border-color .3s ease;
}
.map-directions:hover, .map-directions:focus-visible{color:var(--wine);border-color:var(--wine);}
.map-directions:focus-visible{outline:none;}

.contact-details{
  margin-top:44px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.contact-details .eyebrow{display:block;margin-bottom:8px;}
.contact-details p{color:var(--stone);line-height:1.7;font-size:.95rem;}
.contact-details a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s ease, color .3s ease;}
.contact-details a:hover, .contact-details a:focus-visible{color:var(--wine);border-color:var(--wine);}

@media (max-width: 1024px){
  header{padding:22px 32px;}
  nav ul{gap:22px;}
  .hero{padding:0 32px 70px;}
  .hero-arrow.prev{left:32px;}
  .hero-arrow.next{right:32px;}
  .hero-dots{right:32px;}
  .section-head{padding:80px 32px 32px;}
  .statement{padding:16px 32px 80px;}
  .gallery-tabs{padding:0 24px;}
  .gallery-section{padding:60px 32px 90px;}
  .gallery-showcase{padding:80px 32px;}
  .quote-block{padding:70px 32px;}
  .testimonial-arrow.prev{left:20px;}
  .testimonial-arrow.next{right:20px;}
  .cta-band{padding:80px 32px;}
  .story{padding:16px 32px 80px; gap:44px;}
  .values{padding:16px 32px 90px;}
  .service-list{padding:16px 32px 90px;}
}
@media (max-width: 900px){
  .contact-grid{grid-template-columns:1fr; gap:60px; padding:70px 40px 90px;}
}
@media (max-width: 640px){
  .contact-grid{padding:50px 22px 70px;}
  .form-row.two-col{grid-template-columns:1fr;}
  .form-row.two-col > div{margin-bottom:22px;}
  .map-frame{aspect-ratio:1/1;}
}
@media (max-width: 900px){
  .offerings{grid-template-columns:1fr;}
  .offering{border-right:none;border-bottom:1px solid var(--line);}
  .preview-strip{grid-template-columns:repeat(3,1fr);}
  .preview-tile{height:150px;}
  .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  .frame-grid{grid-template-columns:repeat(2,1fr);}
  .story{grid-template-columns:1fr;}
  .stats-row{grid-template-columns:1fr;}
  .stat{border-right:none;border-bottom:1px solid var(--line);}
  .values{grid-template-columns:1fr;gap:40px;}
  .service-row{grid-template-columns:1fr;gap:12px;text-align:left;}
  .service-row a{justify-self:start;}
}
@media (max-width: 640px){
  header{padding:20px 22px;}
  nav ul{gap:18px;}
  nav a{font-size:.64rem;}
  .hero{padding:0 22px 60px;min-height:78vh;}
  .section-head{padding:70px 22px 30px;}
  .statement{padding:10px 22px 70px;}
  .gallery-tabs{padding:0 10px;}
  .gallery-tab{padding:18px 14px;font-size:.66rem;}
  .gallery-section{padding:50px 22px 80px;}
  .gallery-grid{grid-template-columns:repeat(2, 1fr); gap:12px;}
  .gallery-showcase{padding:70px 22px;}
  .frame-grid{grid-template-columns:1fr;}
  .preview-strip{grid-template-columns:repeat(2,1fr);}
  .preview-tile{height:130px;}
  .story{padding:10px 22px 70px;}
  .values{padding:10px 22px 70px;}
  .service-list{padding:10px 22px 70px;}
  .cta-band{padding:70px 22px;}
  footer{padding:60px 22px 30px;}
  .offering{padding:40px 22px;}
  .quote-block{padding:60px 22px;}
  .testimonial-track{min-height:180px;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .gallery-section.active{animation:none;}
}
