/* Font loading: fonts are requested via <link> in the document head (see build.py head()),
   with preconnect hints and only the weights actually used. Do not add an @import here,
   that would create a second, redundant font request. */

:root{
  --ink:#0b0a08;
  --panel:#17130f;
  --panel-2:#1f1913;
  --cream:#efe6d8;
  --paper:#f8f4ec;
  --gold:#c9a961;
  --gold-bright:#f2dd9a;
  --gold-deep:#8b6f1f;
  --text-dark:#241d15;
  --line-dark:rgba(239,230,216,0.18);
  --line-light:rgba(36,29,21,0.25);
  --green:#7fbf6b;
  --amber:#c96a4a;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:'Jost', sans-serif;
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  padding-bottom:64px; /* room for mobile action bar */
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}
main{display:block;}

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--gold-bright); color:var(--ink);
  padding:0.75rem 1.2rem; z-index:200;
  font-weight:600; border-radius:2px;
}
.skip-link:focus{left:1rem; top:1rem;}

.eyebrow{
  font-size:0.72rem; letter-spacing:0.32em; text-transform:uppercase;
  color:var(--gold); font-weight:500;
}
.wrap{max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem);}

/* ---------- NAV ---------- */
header.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(11,10,8,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.85rem clamp(1.25rem,4vw,3rem);
  max-width:1180px; margin:0 auto; gap:1rem;
}
.nav-word{
  font-family:'Bodoni Moda', serif; font-weight:700;
  font-size:1.05rem; letter-spacing:0.03em; color:var(--paper);
  white-space:nowrap;
}
.nav-word em{
  font-family:'Pinyon Script', cursive; font-style:normal;
  color:var(--gold-bright); font-size:1.4rem; margin:0 0.05em;
}
.nav-links{
  display:flex; gap:1.8rem; align-items:center;
  font-size:0.78rem; letter-spacing:0.07em; text-transform:uppercase;
}
.nav-links a{color:var(--cream); opacity:0.85; transition:opacity .2s;}
.nav-links a:hover, .nav-links a[aria-current="page"]{opacity:1; color:var(--gold-bright);}
.btn-nav{
  border:1px solid var(--gold); padding:0.5rem 1.1rem; border-radius:2px;
  color:var(--gold-bright) !important; opacity:1 !important;
}
.btn-nav:hover{background:var(--gold); color:var(--ink) !important;}
.nav-toggle{
  display:none; background:none; border:1px solid var(--line-dark);
  color:var(--paper); padding:0.5rem 0.7rem; border-radius:2px; font-size:1rem;
}
@media (max-width:820px){
  .nav-links{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--panel); border-bottom:1px solid var(--line-dark);
    padding:0.5rem 0;
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:0.9rem clamp(1.25rem,4vw,3rem); border-bottom:1px solid var(--line-dark);}
  .nav-links a.btn-nav{border:none; text-align:left;}
  .nav-toggle{display:inline-block;}
}

/* ---------- MOBILE ACTION BAR ---------- */
.mobile-bar{
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:150;
  background:var(--panel); border-top:1px solid var(--line-dark);
}
.mobile-bar-inner{display:grid; grid-template-columns:1fr 1fr 1fr;}
.mobile-bar a{
  text-align:center; padding:0.85rem 0.4rem; font-size:0.72rem;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--cream);
  border-right:1px solid var(--line-dark);
}
.mobile-bar a:last-child{border-right:none;}
.mobile-bar a.primary{background:var(--gold); color:var(--ink); font-weight:600;}
@media (max-width:820px){.mobile-bar{display:block;}}

/* ---------- BREADCRUMBS ---------- */
.breadcrumbs{
  font-size:0.75rem; letter-spacing:0.03em; color:var(--cream); opacity:0.72;
  padding:1rem 0 0;
}
.breadcrumbs a{border-bottom:1px dotted var(--line-dark);}
.breadcrumbs a:hover{color:var(--gold-bright);}

/* ---------- HERO ---------- */
.hero{padding:clamp(3rem,8vw,5.5rem) 0 clamp(2.5rem,6vw,4rem); text-align:center; position:relative; overflow:hidden;}
.hero.small{padding-top:clamp(2rem,5vw,3rem);}
.hero::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 50% 0%, rgba(201,169,97,0.14), transparent 60%);
  pointer-events:none;
}
.hero-inner{position:relative; z-index:1;}
h1.wordmark{
  font-family:'Bodoni Moda', serif; font-weight:800;
  font-size:clamp(2.6rem,9vw,5.2rem); line-height:1.02; letter-spacing:0.005em;
  background:linear-gradient(180deg, var(--gold-bright) 0%, var(--gold) 55%, var(--gold-deep) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.wordmark-script{
  display:block; font-family:'Pinyon Script', cursive;
  font-size:clamp(1.9rem,6vw,3.2rem); color:var(--gold-bright); margin-top:-0.3em;
}
h1.page-title{
  font-family:'Bodoni Moda', serif; font-weight:700;
  font-size:clamp(2.1rem,6vw,3.4rem); color:var(--paper); margin-top:0.6rem;
}
.hero-tagline{margin-top:1.2rem; font-size:0.8rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--cream); opacity:0.8;}
.hero-copy{max-width:560px; margin:1.5rem auto 0; color:var(--cream); opacity:0.85; font-size:1rem;}
.hero-actions{margin-top:2.1rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;}

.status-pill{
  display:inline-flex; align-items:center; gap:0.5rem; border:1px solid var(--line-dark);
  padding:0.4rem 0.9rem; border-radius:999px; font-size:0.75rem;
  letter-spacing:0.03em; color:var(--cream); margin:1.4rem 0;
}
.status-dot{width:8px; height:8px; border-radius:50%; background:var(--green); flex:none;
  box-shadow:0 0 0 0 rgba(127,191,107,0.6); animation:pulse 2.2s infinite;}
.status-dot.closed{background:var(--amber); animation:none; box-shadow:none;}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(127,191,107,0.55);}
  70%{box-shadow:0 0 0 8px rgba(127,191,107,0);}
  100%{box-shadow:0 0 0 0 rgba(127,191,107,0);}
}
@media (prefers-reduced-motion: reduce){.status-dot{animation:none;}}

.btn{display:inline-block; padding:0.9rem 2rem; font-size:0.76rem; letter-spacing:0.16em;
  text-transform:uppercase; border-radius:2px; transition:all .2s ease; cursor:pointer; border:1px solid transparent;}
.btn-gold{background:linear-gradient(180deg, var(--gold-bright), var(--gold)); color:var(--ink); font-weight:600; border-color:var(--gold);}
.btn-gold:hover{filter:brightness(1.08); transform:translateY(-1px);}
.btn-outline{border-color:var(--cream); color:var(--cream);}
.btn-outline:hover{border-color:var(--gold-bright); color:var(--gold-bright);}
.btn-block{display:block; text-align:center;}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--gold); color:var(--ink); overflow:hidden; white-space:nowrap;
  border-top:1px solid var(--gold-deep); border-bottom:1px solid var(--gold-deep);}
.marquee-track{display:inline-flex; animation:scroll 30s linear infinite;}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none;}}
.marquee span{font-weight:600; font-size:0.82rem; letter-spacing:0.12em; text-transform:uppercase; padding:0.7rem 1.1rem;}
@keyframes scroll{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}

/* ---------- SECTIONS ---------- */
section{padding:clamp(3rem,7vw,5rem) 0;}
.section-head{text-align:center; margin-bottom:clamp(2rem,5vw,3rem);}
.section-title{font-family:'Bodoni Moda', serif; font-weight:700; font-size:clamp(1.8rem,4.5vw,2.7rem); margin-top:0.4rem;}
.section-sub{max-width:560px; margin:0.9rem auto 0; font-size:0.9rem; opacity:0.75;}
.section.paper{background:var(--paper); color:var(--text-dark);}
.section.paper .eyebrow{color:var(--gold-deep);}
.section.panel{background:var(--panel);}
.section.panel-2{background:var(--panel-2);}

/* ---------- CARD GRID (services / journal directory) ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem;}
@media (max-width:900px){.card-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.card-grid{grid-template-columns:1fr;}}
.card{
  background:var(--panel); border:1px solid var(--line-dark); border-radius:3px;
  padding:1.8rem; display:flex; flex-direction:column; gap:0.7rem;
}
.card-photo{aspect-ratio:4/3; border-radius:3px; overflow:hidden; margin-bottom:0.3rem;}
.card-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.card h3{font-family:'Bodoni Moda', serif; color:var(--gold-bright); font-size:1.15rem;}
.card p{font-size:0.88rem; opacity:0.8;}
.card .price-tag{color:var(--gold); font-weight:600; font-size:0.85rem;}
.card a.card-link{margin-top:auto; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--gold-bright); border-bottom:1px solid var(--gold-deep); align-self:flex-start;}

/* ---------- MENU ROWS (price lists) ---------- */
.menu-cat h3{
  font-family:'Bodoni Moda', serif; font-weight:700; font-size:1.02rem; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--gold-deep); border-bottom:2px solid var(--text-dark);
  padding-bottom:0.5rem; margin-bottom:0.8rem;
}
.menu-row{display:flex; align-items:baseline; gap:0.4rem; font-size:0.9rem; padding:0.3rem 0;}
.menu-row .name{white-space:nowrap;}
.menu-row .leader{flex:1; border-bottom:1px dotted var(--line-light); margin-bottom:5px;}
.menu-row .price{white-space:nowrap; font-weight:600;}
.menu-note{margin-top:2rem; text-align:center; font-size:0.8rem; opacity:0.75; font-style:italic;}

/* ---------- FACT GRID (service pages) ---------- */
.fact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; margin:1.6rem 0;}
.fact{background:var(--panel); border:1px solid var(--line-dark); padding:1.1rem; border-radius:3px;}
.fact .fact-label{font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:0.4rem;}
.fact .fact-value{font-size:0.95rem; color:var(--paper);}

/* ---------- PHOTO PLACEHOLDER ---------- */
.photo-slot{
  border:1px dashed var(--line-dark); border-radius:3px; padding:2rem 1rem;
  text-align:center; font-size:0.78rem; letter-spacing:0.04em; color:var(--cream); opacity:0.72;
  min-height:160px; display:flex; align-items:center; justify-content:center;
}
.photo-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin-top:1.5rem;}

/* ---------- GOOD TO KNOW / FAQ ---------- */
.know-grid{display:grid; grid-template-columns:1fr 1fr; gap:2.2rem;}
@media (max-width:700px){.know-grid{grid-template-columns:1fr;}}
.know-card{background:var(--panel); border:1px solid var(--line-dark); padding:1.8rem; border-radius:3px;}
.know-card h3{font-family:'Bodoni Moda', serif; color:var(--gold-bright); font-size:1.1rem; margin-bottom:1rem;}
.know-card ul{list-style:none;}
.know-card li{padding:0.5rem 0; border-bottom:1px solid var(--line-dark); font-size:0.9rem; opacity:0.9;
  display:flex; justify-content:space-between; gap:1rem;}
.know-card li:last-child{border-bottom:none;}
.know-card li .tag{color:var(--gold); font-weight:600; white-space:nowrap;}

details.faq{border-bottom:1px solid var(--line-dark); padding:0.9rem 0;}
details.faq summary{cursor:pointer; font-weight:500; font-size:0.96rem; color:var(--paper); list-style:none;}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary::before{content:'+'; color:var(--gold-bright); margin-right:0.6rem; font-weight:700;}
details.faq[open] summary::before{content:'-';}
details.faq p{margin-top:0.6rem; font-size:0.88rem; opacity:0.8; padding-left:1.2rem;}

/* ---------- STORY / SIGNOFF ---------- */
.story{text-align:center;}
.story .wrap{max-width:760px;}
.story p{font-size:clamp(1rem,2.2vw,1.2rem); color:var(--cream); line-height:1.75;}
.story p + p{margin-top:1.3rem;}
.story .signoff{margin-top:1.8rem; font-family:'Bodoni Moda', serif; font-weight:600; font-size:1.1rem; color:var(--gold-bright);}

/* ---------- HOURS TABLE ---------- */
table.hours{width:100%; border-collapse:collapse; font-size:0.92rem;}
table.hours th{padding:0.5rem 0; border-bottom:2px solid var(--line-dark); text-align:left;
  font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); font-weight:600;}
table.hours th:last-child{text-align:right;}
table.hours td{padding:0.6rem 0; border-bottom:1px solid var(--line-dark);}
table.hours tr.today td{color:var(--gold-bright); font-weight:600;}
table.hours td:last-child, table.hours th:last-child{text-align:right;}

/* ---------- CONTACT / VISIT ---------- */
.contact-block a{display:inline-block; font-size:1rem; margin-bottom:0.6rem; color:var(--cream);
  border-bottom:1px solid var(--line-dark); padding-bottom:2px;}
.contact-block a:hover{color:var(--gold-bright); border-color:var(--gold);}

/* ---------- SUBSCRIBE FORM ---------- */
.subscribe{background:var(--panel-2); border:1px solid var(--line-dark); border-radius:3px; padding:2rem; text-align:center;}
.subscribe h3{font-family:'Bodoni Moda', serif; color:var(--gold-bright); font-size:1.3rem; margin-bottom:0.6rem;}
.subscribe p{font-size:0.88rem; opacity:0.75; max-width:480px; margin:0 auto 1.3rem;}
.subscribe-form{display:flex; gap:0.6rem; max-width:420px; margin:0 auto; flex-wrap:wrap; justify-content:center;}
.subscribe-form input[type="email"]{
  flex:1; min-width:220px; padding:0.8rem 1rem; background:var(--ink); border:1px solid var(--line-dark);
  color:var(--paper); border-radius:2px; font-family:'Jost', sans-serif;
}
.subscribe-form label{display:block; font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--cream); opacity:0.72; margin-bottom:0.4rem;}
.subscribe-note{margin-top:1rem; font-size:0.72rem; opacity:0.68;}

/* ---------- FOOTER ---------- */
footer.site-footer{border-top:1px solid var(--line-dark); background:var(--ink); padding:3rem 0 1.5rem;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr; gap:2rem;}}
.footer-grid h4{font-family:'Bodoni Moda', serif; color:var(--gold-bright); font-size:1rem; margin-bottom:0.9rem;}
.footer-grid ul{list-style:none;}
.footer-grid li{margin-bottom:0.55rem; font-size:0.86rem; opacity:0.8;}
.footer-grid li a:hover{color:var(--gold-bright);}
.footer-bottom{border-top:1px solid var(--line-dark); margin-top:2.2rem; padding-top:1.2rem;
  text-align:center; font-size:0.72rem; letter-spacing:0.04em; opacity:0.68;}

/* ---------- PHOTOGRAPHY ---------- */
.hero-grid{
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2rem,5vw,4rem);
  align-items:center; text-align:left;
}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr; text-align:center;}
  .hero-grid .hero-inner{order:2;}
  .hero-grid .hero-photo-wrap{order:1;}
}
.hero-photo-wrap{
  border-radius:4px; overflow:hidden; border:1px solid var(--line-dark);
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);
  aspect-ratio:4/5;
}
.hero-photo-wrap img{width:100%; height:100%; object-fit:cover; display:block;}

.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:0.9rem;
}
@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(3, 1fr);}}
@media (max-width:600px){.gallery-grid{grid-template-columns:repeat(2, 1fr);}}
.gallery-item{
  position:relative; aspect-ratio:3/4; overflow:hidden; border-radius:3px;
  border:1px solid var(--line-dark); background:var(--panel);
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .4s ease;
}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-caption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(0deg, rgba(11,10,8,0.88), transparent);
  color:var(--paper); font-size:0.72rem; letter-spacing:0.04em;
  padding:1.6rem 0.7rem 0.6rem;
}
.gallery-filters{
  display:flex; flex-wrap:wrap; gap:0.6rem; justify-content:center; margin-bottom:1.8rem;
}
.gallery-filters button{
  background:none; border:1px solid var(--line-dark); color:var(--cream);
  padding:0.5rem 1rem; border-radius:999px; font-size:0.76rem;
  letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; transition:all .2s;
}
.gallery-filters button:hover, .gallery-filters button.active{
  border-color:var(--gold); color:var(--gold-bright); background:rgba(201,169,97,0.1);
}

.service-photo-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1rem;
}
.service-photo{border-radius:3px; overflow:hidden; border:1px solid var(--line-dark); aspect-ratio:4/5;}
.service-photo img{width:100%; height:100%; object-fit:cover; display:block;}

.founder-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(1.5rem,4vw,3rem); align-items:center;}
@media (max-width:760px){.founder-grid{grid-template-columns:1fr;}}
.founder-photo-main{border-radius:3px; overflow:hidden; border:1px solid var(--line-dark); aspect-ratio:4/5;}
.founder-photo-main img{width:100%; height:100%; object-fit:cover; display:block;}
.founder-content .eyebrow{margin-bottom:0.4rem;}
.founder-content h2{font-family:'Bodoni Moda',serif; font-weight:700; font-size:clamp(1.8rem,4vw,2.4rem); color:var(--gold-bright);}
.founder-content .founder-title{font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); margin-top:0.3rem;}
.founder-content p.founder-bio{margin-top:1.1rem; font-size:0.96rem; opacity:0.85; line-height:1.7;}
.founder-secondary-row{display:flex; align-items:center; gap:1rem; margin-top:1.3rem;}
.founder-photo-secondary{width:76px; height:76px; border-radius:50%; overflow:hidden; border:1px solid var(--line-dark); flex:none;}
.founder-photo-secondary img{width:100%; height:100%; object-fit:cover; display:block;}
.owner-note{
  background:rgba(201,169,97,0.09); border:1px dashed var(--gold-deep); border-radius:3px;
  padding:1rem 1.2rem; font-size:0.82rem; color:var(--cream); opacity:0.9; margin:1.5rem 0;
}
.owner-note strong{color:var(--gold-bright);}
