
:root { --bg:#fff; --fg:#000; --muted:#444; --maxw:1000px; --leading:1.55; --base:18px; }
html{font-size:var(--base);}
body{margin:0;font-family:"Avenir",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:var(--leading);color:var(--fg);background:var(--bg);text-rendering:optimizeLegibility;}
.large-text body, body.large-text{font-size:112.5%;}
*{box-sizing:border-box;}
img{max-width:100%;height:auto;display:block;}

/* Links: bold, no underline */
a{color:var(--fg);text-decoration:none;font-weight:500;}
a.btn,.btn{border:1px solid var(--fg);padding:.6rem 1rem;text-decoration:none;display:inline-block;}
.btn.outline{background:transparent;}
.btn:hover{opacity:.8;}

/* Layout */
.container{line-height:1.4;font-size:.85rem;font-weight:400; width:95%;max-width:var(--maxw);margin:0 auto;}

/* Header & Nav: remove lines, align A+ after Contact */
.site-header{}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding:.1rem 0;padding-top:.2rem}
.brand .logo{font-weight:400;letter-spacing:.02em;}
.site-nav{display:flex;align-items:center;gap:1rem;}
.site-nav ul{list-style:none;display:flex;gap:1rem;margin:0;padding:0;order:1;}
.text-toggle{order:2;border:1px solid var(--fg);background:none;padding:.3rem .5rem;cursor:pointer;line-height:1;}

/* Footer: remove line, legal links smaller */
.site-footer{padding:2rem 0;}
.site-footer nav.legal, .site-footer nav.legal a{font-size:.75rem;}
.site-footer nav a{margin-right:.6rem;}

/* Accessibility */
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:1rem;top:1rem;background:#fff;color:#000;padding:.5rem;border:1px solid #000;z-index:1000;}
:focus{outline:2px solid #000;outline-offset:2px;}

/* Hero */
.hero{padding:0 0;}
.hero h1{font-size:1.3rem;margin-bottom:.1rem;margin-top:1rem;}
.hero .sub{font-size:.95rem;color:var(--muted);margin-bottom:.1rem;margin-top:.1rem;}
.hero-media{margin-top:2rem;margin-left:0;margin-bottom:4rem;}

/* Signatures grid: no boxes */
.grid .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:0;margin:1rem 0;list-style:none;}
.grid .cards li{padding:1rem;background:transparent;}
.kicker{text-transform:uppercase;font-size:.75rem;color:var(--muted);}

/* Split section */
.split .container{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:760px){.split .container{grid-template-columns:1fr 1fr;}}

/* Banner: no rules */
.banner{padding:1rem 0;margin:2rem 0;}

/* Content */
.content{padding:.1rem 0;}
.content h1,.content h2{font-size:.95rem;font-weight:400; margin-top:0rem;margin-bottom:0rem; !important/* reduce from default 1–1.5rem */}
/* Remove extra space after headings in .content when followed by lists or paragraphs */
.content h1 + p,
.content h2 + p,
.content h1 + ul,
.content h2 + ul,
.content h1 + img,
.content h2 + img,
.content h1 + figure,
.content h2 + figure,
.content h1 + .boutique-media,
.content h2 + .boutique-media {
  margin-top: 0 !important;
}

.content h1 + p,
.content h2 + p,
.content h1 + ul,
.content h2 + ul,
.content h1 + img,
.content h2 + img,
.content h1 + figure,
.content h2 + figure,
.content h1 + .boutique-media,
.content h2 + .boutique-media {
  margin-bottom: 0 !important;
}


.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;}
.hours{list-style:none;padding:0;}

/* Cookie banner: no top rule */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;background:#fff;color:#000;display:none;}
.cookie-banner .container{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;}

@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}


/* === Final Tweaks (Aug 12, 2025) === */
.site-header .site-nav{order:1;}
.site-header .brand{order:2; text-align:right; display:inline-block;}
.brand-logo{transform:scale(0.5); transform-origin:right center; height:auto; width:auto;padding-top:.8rem}

/* Prevent black lines (focus/active borders/outlines) */
a:focus, a:active, button:focus, button:active { outline: none !important; box-shadow: none !important; }
.site-nav a, .site-nav a:focus, .site-nav a:active { border-bottom: none !important; box-shadow: none !important; }
footer, header { border: 0 !important; }
hr { border: 0; height: 0; }
:focus { outline: none !important; }

/* Signature cards */
.signature-card{
  position:relative;
  background-size: contain;
  background-position:center;
  color:#fff;
  aspect-ratio: 4 / 3;   /* fixed rectangle size */
  display:block;
  align-items:flex-end;
  padding:1rem;
  border:0;
}
.signature-card *{ color:#fff; text-shadow:none; }
.signature-card::before{ content:none; } /* ensure no gradient overlay */

/* Contact right-side images */
.contact-media{ float:right; width:min(40%, 420px); margin:0 0 1rem 1rem; }
.contact-media img{ width:100%; height:auto; display:block; margin:0 0 1rem 0; }

/* Boutique / Visit side images */
.boutique-media{ float:right; width:min(50%, 800px); margin:0 0 1rem 1rem; max-width:800px; }
.visit-media{ float:right; width:min(60%, 800px); margin:0 0 1rem 1rem; max-width:800px; }
.boutique-media, .visit-media { height:auto; }


/* === Global header spacing & align (Aug 12, 2025) === */
.site-header .container{padding-top:.2rem; padding-bottom:.1rem;}
.site-header .site-nav{order:1;}
.site-header .brand{order:2; text-align:right; display:inline-block;}
.brand-logo{transform:scale(1.0); transform-origin:right center; height:auto; width:auto;}
/* Prevent focus lines */
a:focus, a:active, button:focus, button:active { outline: none !important; box-shadow: none !important; }
.site-nav a, .site-nav a:focus, .site-nav a:active { border-bottom: none !important; box-shadow: none !important; }
footer, header { border: 0 !important; }
hr { border: 0; height: 0; }
:focus { outline: none !important; }





/* Home hero typography and alignment (fix13b) */
.site-header .container{ padding-top:.1rem; padding-bottom:.1rem; }
main h1{ font-size:1.35rem; margin-top:.4rem; }
main p.subtitle, main .subtitle{ font-size:1.0rem; margin-top:.1rem; }
.hero img, .home-hero img, main > img:first-of-type{
  width:60%;
  display:block;
  margin:.25rem 0 1rem 0; /* ensures left aligned with text (no auto margins) */
}





/* ensure hero image aligns with title */
.home-hero img, .hero img, main > img:first-of-type{ margin-left:0; }


/* fix15: hero + signatures layout */
.hero img, .home-hero img, main > img:first-of-type{
  width:60%;
  display:block;
  margin:.25rem 0 1rem 0;
  margin-left:0;
}
main h1{ font-size:1.35rem; line-height:1.2; }
main p.subtitle, main .subtitle{ font-size:1.0rem; line-height:1; }





/* === Fix21: Reduce global header height === */
.site-header .container {
  padding-top: .1rem !important;
  padding-bottom: .1rem !important;
}
.brand-logo {
  max-height: 120px !important;
  height: auto;
  width: auto;
}
.site-nav ul {
  gap: .6rem !important;
}
.site-nav a {
  line-height: 1.1 !important;
}

/* Safety: never clip header contents */
.site-header{ overflow: visible !important; }






/* === Gallery layout (scoped, safe) === */
body.gallery {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

body.gallery main {
  flex: 1 0 auto;
  clear: both;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 clamp(12px, 5vw, 48px);
}

body.gallery .gallery-stage {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1600px;
  display: grid;
  place-items: center;
}

body.gallery .gallery-stage img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

body.gallery .gallery-hit {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: transparent;
  border: 0;
  cursor: pointer;
}
body.gallery .gallery-hit.left  { left: 0; }
body.gallery .gallery-hit.right { right: 0; }

@media (pointer: fine){
  body.gallery .gallery-hit.left:hover  { cursor: w-resize; }
  body.gallery .gallery-hit.right:hover { cursor: e-resize; }
}

body.gallery .site-footer { margin-top: auto; }

/* === Align gallery-stage with header container (v2) === */
body.gallery main { padding-left: 0 !important; padding-right: 0 !important; }
body.gallery .gallery-stage {
  max-width: var(--maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

h2 {
  font-size: 1.0rem;
  font-weight: 700;
}

/* Remove blank line after headings in .content — covers all cases */
.container.content,
.content {
  gap: 0 !important;            /* if the container is flex/grid */
  row-gap: 0 !important;
  column-gap: 0 !important;
}

.content h2 {
  margin-bottom: 0 !important;  /* kill any heading bottom margin */
}

/* kill the TOP margin on whatever comes right after the h2 (img, p, ul, figure, etc.) */
.content h2 + * {
  margin-top: 0 !important;
}

/* images: make sure they don't introduce inline gaps */
.content img {
  display: block;               /* avoids inline baseline spacing */
}

/* keep your special class tidy too */
.content img.boutique-media {
  margin-top: 0 !important;
}

/* Kill the auto spacer after headings inside .content */
.content h1 + *,
.content h2 + *,
.content h3 + * {
  margin-block-start: 0 !important;  /* removes that 18px */
}

/* Make sure headings themselves don't add space below */
.content h1,
.content h2,
.content h3 {
  margin-block-end: 0 !important;
}

/* Be extra explicit for images/figures after headings */
.content h2 + img,
.content h2 + figure,
.content h2 + img.boutique-media {
  margin-block-start: 0 !important;
}

/* If the parent uses flex/grid gaps, remove them in this area */
.container.content,
.content {
  gap: 0 !important;
  row-gap: 0 !important;
}

/* Avoid inline-image baseline gaps */
.content img {
  display: block;
}

/* 1) Kill the 18px spacer on a paragraph immediately after a heading in .content */
.content h1 + p,
.content h2 + p,
.content h3 + p {
  margin-block-start: 0 !important;
  margin-top: 0 !important; /* legacy prop, just in case */
}

/* 2) Also ensure the heading itself isn’t adding space below */
.content h1,
.content h2,
.content h3 {
  margin-block-end: 0 !important;  /* logical bottom */
  margin-bottom: 0 !important;     /* legacy */
}

/* 3) If the paragraph sits inside a wrapper right after the heading, trim the wrapper’s first child */
.content :is(h1, h2, h3) + :is(div, section, article, aside) > :first-child {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* 4) Nuclear option for any element immediately after a heading (keeps other layouts intact) */
.content :is(h1, h2, h3) + * {
  margin-block-start: 0 !important;
}

/* 5) If a global rhythm rule uses * + * with logical margins, out‑specific it inside .content */
.content :where(* + *) {
  margin-block-start: 0 !important;
}

/* Kill the 18px spacer when a blockquote follows a heading */
.container h1 + blockquote,
.container h2 + blockquote,
.container h3 + blockquote,
.content  h1 + blockquote,
.content  h2 + blockquote,
.content  h3 + blockquote {
  margin-block-start: 0 !important;
  margin-top: 0 !important;             /* legacy alias */
}

/* Also remove the top margin on the first paragraph inside that blockquote */
.container h1 + blockquote > :first-child,
.container h2 + blockquote > :first-child,
.container h3 + blockquote > :first-child,
.content  h1 + blockquote > :first-child,
.content  h2 + blockquote > :first-child,
.content  h3 + blockquote > :first-child {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* Make sure the heading itself doesn't add space below */
.container h1, .container h2, .container h3,
.content  h1, .content  h2, .content  h3 {
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}
/* --- Signature cards (cleaned up) --- */

/* Signature card: fixed 4:3 clipping box */
.signature-card {
  position: relative;
  display: block;              /* no flex layout */
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 0;
  padding: 0;
  background-color: transparent;  /* placeholder bg if no image/video */
}

/* Allow inline background-image for static image cards */
.signature-card {
  background-size: contain;
  background-position: left top;
  background-repeat: no-repeat;
}

/* Media wrapper for video (and optionally images) */
.signature-card .sig-media {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.signature-card .sig-media > img,
.signature-card .sig-media > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;           /* fill card without stretching */
}

/* Overlay content always pinned top-left */
.signature-card .signature-content {
  position: absolute;
  top: .75rem;
  left: .75rem;
  right: auto;
  bottom: auto;
  margin: 0;
  z-index: 2;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: .1rem;
  color: #fff;
}

/* Typography */
.signature-card .signature-content .sig-cat {
  font-size: .70rem;
  font-weight: 100;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.signature-card .signature-content .sig-name {
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1.1;
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  text-transform: none;
}

/* Optional: stronger white on video cards */
.signature-card .signature-content .sig-cat,
.signature-card .signature-content .sig-name {
  color: #fff;
  text-shadow: 0 0 1px rgba(0,0,0,.15);
}

/* Visual fallback for video cards */
.signature-card.is-video .sig-media {
  background: #000 center / cover no-repeat;
}


/* === SIGNATURES: hard reset & pin overlay UPPER-LEFT === */
body ul.signatures > li.signature-card{
  position: relative !important;
  display: block !important;
  align-items: initial !important;
  justify-content: initial !important;
  padding: 0 !important;
  overflow: hidden !important;
  aspect-ratio: 4 / 3 !important;
}

/* Media layer (image/video) fills the card, sits under overlay */
body ul.signatures > li.signature-card > .sig-media{
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
}
body ul.signatures > li.signature-card > .sig-media > img,
body ul.signatures > li.signature-card > .sig-media > video{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* OVERLAY: force to upper-left */
body ul.signatures > li.signature-card > .signature-content{
  position: absolute !important;
  top: .75rem !important;
  left: .75rem !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  z-index: 2 !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  gap: .1rem !important;

  transform: none !important;      /* cancel any translate pushing it down */
}

/* If any child was self-aligning to bottom, neutralize it */
body ul.signatures > li.signature-card > .signature-content *{
  align-self: initial !important;
}
/* === Signatures: absolute pin overlay to UPPER-LEFT; force media to fill === */
#signatures > li.signature-card{
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  overflow: hidden !important;
  aspect-ratio: 4 / 3 !important;
  align-items: initial !important;   /* cancel old flex alignment */
  justify-content: initial !important;
}

#signatures > li.signature-card > .sig-media{
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
}
#signatures > li.signature-card > .sig-media > img,
#signatures > li.signature-card > .sig-media > video{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

#signatures > li.signature-card > .signature-content{
  position: absolute !important;
  inset: .75rem auto auto .75rem !important; /* top .75rem, left .75rem */
  margin: 0 !important;
  z-index: 2 !important;
  display: block !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  gap: .1rem !important;
  transform: none !important;        /* neutralize any transforms */
  bottom: auto !important;           /* explicitly cancel bottom pinning */
  right: auto !important;            /* explicitly cancel right pinning */
}

/* If any child self-aligned to bottom, reset it */
#signatures > li.signature-card > .signature-content *{
  align-self: initial !important;
}

