:root{ color-scheme:light; --black:#111111; --dark:#1c1c1c; --white:#FFFFFF; --gray:#F5F5F5; --mid:#3F3F3F; --line:#E4E4E4; }
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip;overscroll-behavior-x:none;max-width:100%}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
html{background:var(--white);color:var(--black)}
body{font-family:'Lato',sans-serif;color:var(--black);background:var(--white);line-height:1.7;font-size:16px;font-weight:300}
img{max-width:100%;display:block;height:auto}
a{color:var(--black)}
a:focus-visible,button:focus-visible{outline:3px solid #767676;outline-offset:3px}
h1,h2,h3{font-weight:300;line-height:1.2;letter-spacing:.04em}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}

/* Top bar */
.top-bar{background:var(--black);color:#CFCFCF;font-size:.8rem}
.top-bar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:34px}
.top-bar a{color:var(--white);text-decoration:none;padding:6px 0;display:inline-block}
.top-bar a:hover{text-decoration:underline}

/* Header */
.site-header{background:var(--dark);position:sticky;top:0;z-index:50}
.site-header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 16px;padding:10px 20px;max-width:1200px;margin:0 auto}
.custom-logo{display:block;width:180px;height:auto}
.main-navigation{display:block;width:100%}
.main-navigation .menu{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:2px}
.main-navigation .menu-item > a{display:block;padding:12px 14px;color:var(--white);text-decoration:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.main-navigation .menu-item > a:hover{color:#BFBFBF}

/* Hero */
.hero{position:relative;min-height:430px;max-height:560px;display:flex;align-items:flex-end;background:var(--black);color:var(--white);overflow:hidden}
.hero-stage{position:absolute;inset:0}
.frame{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.frame.on{opacity:1}
.frame-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 45%,rgba(0,0,0,.78) 100%);pointer-events:none}
.hero-inner{position:relative;padding:40px 20px;max-width:1200px;margin:0 auto;width:100%}
.hero h1{color:var(--white);font-size:1.9rem;letter-spacing:.08em}
.hero p.sub{color:#E8E8E8;margin:6px 0 18px;font-size:.95rem;letter-spacing:.05em}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 34px;text-decoration:none;font-weight:400;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;border:1px solid transparent}
.btn-light{border-color:var(--white);color:var(--white)}
.btn-light:hover{background:var(--white);color:var(--black)}
.btn-dark{border-color:var(--black);color:var(--black)}
.btn-dark:hover{background:var(--black);color:var(--white)}

/* Sections */
section{padding:60px 0;background:var(--white);color:var(--black)}
.center{text-align:center}
h2{font-size:1.6rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:8px}
.subline{color:var(--mid);font-size:.95rem;margin-bottom:34px}

/* Art grid */
.grid{display:grid;grid-template-columns:1fr;gap:14px}
.grid figure{position:relative;overflow:hidden;background:var(--gray)}
.grid img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .5s ease}
.grid figure:hover img{transform:scale(1.04)}
.grid figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.88) 100%);color:var(--white);padding:38px 16px 12px;text-shadow:0 1px 3px rgba(0,0,0,.9);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}

/* Panoramic works span the full row at their true proportions — never
   square-cropped, which would cut the piece in half. */
.grid figure.wide{grid-column:1/-1}
.grid figure.wide img{aspect-ratio:auto;width:100%;height:auto}

/* Hero slideshow */
@media (prefers-reduced-motion: reduce){ .frame{transition:none} .frame:first-child{opacity:1} }

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(8,8,8,.96);z-index:100;display:none;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox img{max-width:88vw;max-height:82vh;width:auto;height:auto;object-fit:contain}
.lightbox-caption{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:#DDD;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase}
.lightbox button{position:absolute;background:none;border:none;color:var(--white);cursor:pointer;font-family:inherit;min-width:48px;min-height:48px;font-size:1.6rem;line-height:1}
.lightbox button:hover{color:#9C9C9C}
.lightbox-close{top:14px;right:18px}
.lightbox-prev{left:6px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:6px;top:50%;transform:translateY(-50%)}
@media (min-width:768px){ .lightbox-prev{left:26px} .lightbox-next{right:26px} }
.grid figure{cursor:zoom-in}

/* Quote strip */
.quote{background:var(--black);color:var(--white);text-align:center;padding:70px 0}
.quote blockquote{font-size:1.15rem;font-weight:300;letter-spacing:.06em;line-height:1.8;max-width:52ch;margin:0 auto;font-style:italic}

/* Jewelry */
.jewel{background:var(--gray);color:var(--black)}
.jewel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:8px;max-width:1200px;margin-left:auto;margin-right:auto}
.jewel-grid figure{background:var(--white);position:relative}
.jewel-grid img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--white)}
.jewel-grid figcaption{padding:9px 4px 4px;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--mid);background:var(--gray)}
@media (min-width:768px){ .jewel-grid{grid-template-columns:repeat(3,1fr)} }

/* About strip */
.about p{max-width:62ch;margin:0 auto 8px;color:var(--mid)}
.about .exh{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--black);margin-top:14px}

/* Contact */
.contact{background:var(--gray);color:var(--black)}
.contact .btn-dark{margin:16px 8px 0}
.contact a.plain{color:var(--black);font-weight:400;text-decoration:none;font-size:1.05rem}

/* Footer */
.site-footer{background:var(--black);color:#BDBDBD;padding:44px 0 30px;font-size:.85rem}
.footer-grid{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}
.site-footer a{color:var(--white);text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-menu{list-style:none}
.footer-menu li{margin-bottom:6px}
.footer-menu a{letter-spacing:.1em;text-transform:uppercase;font-size:.8rem}
.footer-note{margin-top:26px;padding-top:16px;border-top:1px solid #2E2E2E;color:#8C8C8C}


/* Tap targets — 44px minimum on touch widths (rule 10 / IS 5568) */
@media (max-width:767px){
  .top-bar .wrap{min-height:44px}
  .top-bar a{min-height:44px;display:inline-flex;align-items:center}
  .contact a.plain{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
  .footer-menu a{display:inline-flex;align-items:center;min-height:44px}
  .footer-menu li{margin-bottom:0}
  .site-footer .footer-grid p a{display:inline-flex;align-items:center;min-height:44px}
}

/* ===== Tablet ===== */
@media (min-width:768px){
  .hero h1{font-size:2.4rem}
  .grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:repeat(3,1fr)}
}
/* ===== Desktop ===== */
@media (min-width:1024px){
  .site-header-inner{flex-wrap:nowrap;justify-content:space-between}
  .main-navigation{width:auto}
  .main-navigation .menu-item > a{padding:10px 16px}
  .hero{min-height:540px;max-height:700px;height:70vh}
  .hero h1{font-size:2.7rem}
  .grid{grid-template-columns:repeat(3,1fr)}
  section{padding:80px 0}
  .custom-logo{width:220px}
}

/* ============================================================
   INTERIOR PAGES  (added v1 — 2026-08-24)
   ============================================================ */

/* Page masthead — compact banner for interior pages */
.pagehead{background:var(--black);color:var(--white);padding:52px 0 46px;text-align:center}
.pagehead h1{font-size:1.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--white)}
.pagehead p{color:#D2D2D2;margin-top:10px;font-size:.95rem;max-width:64ch;margin-left:auto;margin-right:auto}
@media (min-width:1024px){ .pagehead{padding:70px 0 60px} .pagehead h1{font-size:2.1rem} }

/* Gallery groups — one block per series/sort */
.group{padding:56px 0;background:var(--white);color:var(--black)}
.group:nth-of-type(even){background:var(--gray)}
.group-head{text-align:center;margin-bottom:30px}
.group-head h2{font-size:1.35rem;letter-spacing:.2em}
.group-head p{color:var(--mid);font-size:.92rem;margin-top:8px;max-width:70ch;margin-left:auto;margin-right:auto}
@media (min-width:1024px){ .group{padding:74px 0} }

/* Prose — About / CV body copy at a readable measure */
.prose{max-width:68ch;margin:0 auto}
.prose p{margin-bottom:1.05em;color:#1F1F1F;text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.lead{font-size:1.1rem;color:var(--black)!important;letter-spacing:.01em}

/* Two-column: portrait/artwork beside text (rule 26 — image 40–55% of row) */
.duo{display:grid;grid-template-columns:1fr;gap:26px;align-items:center;max-width:1200px;margin:0 auto}
.duo img{width:100%;height:auto;background:var(--gray)}
@media (min-width:1024px){
  .duo{grid-template-columns:minmax(0,48%) minmax(0,52%);gap:44px}
  .duo .prose{margin:0;max-width:none}
}

/* CV listing */
.cv-block{margin-bottom:34px}
.cv-block h3{font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:14px;color:var(--black)}
.cv-list{list-style:none}
.cv-list li{display:grid;grid-template-columns:1fr;gap:2px;padding:10px 0;border-bottom:1px solid var(--line);color:#333333}
.cv-list li:last-child{border-bottom:none}
.cv-year{font-weight:400;letter-spacing:.1em;color:var(--black);font-size:.85rem}
@media (min-width:768px){
  .cv-list li{grid-template-columns:96px 1fr;gap:18px;align-items:baseline}
}

/* Contact detail rows */
.contact-rows{list-style:none;max-width:34rem;margin:0 auto 8px}
.contact-rows li{padding:15px 0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
.contact-rows li:last-child{border-bottom:none}
.contact-rows .k{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid)}
.contact-rows .v{font-size:1.02rem}
.contact-rows a{text-decoration:none;font-weight:400;display:inline-flex;align-items:center;min-height:44px}
.contact-rows a:hover{text-decoration:underline}

/* Current page marker in nav (never colour alone — rule 10) */
.main-navigation .current-menu-item > a{color:var(--white);border-bottom:2px solid var(--white)}
.footer-menu .current-menu-item > a{text-decoration:underline}


/* Group jump nav on the Art page */
.jump{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:20px}
.jump a{display:inline-block;padding:11px 14px;min-height:44px;line-height:22px;border:1px solid var(--line);
  background:var(--white);color:var(--black);text-decoration:none;font-size:.74rem;letter-spacing:.11em;text-transform:uppercase}
.jump a:hover{background:var(--black);color:var(--white);border-color:var(--black)}
.group-head p{text-wrap:pretty}


/* --- Pre-delivery fixes, September 7, 2026 --- */

/* rule 25: size the container to the measure instead of leaving a narrow
   column floating in a wide empty box */
.about .wrap{max-width:780px}
.about p{max-width:none}

/* rule 10: 44px minimum tap targets */
.top-bar a{padding:11px 0;min-height:44px;display:inline-flex;align-items:center}
.top-bar .wrap{min-height:44px}
.main-navigation .menu-item > a{min-width:44px;text-align:center}
.footer-menu a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.site-footer .footer-grid p a{display:inline-block;padding:12px 0}

/* rule 25: the readability measure belongs to the container, not to a narrow
   column floating inside a 1200px box */
.pagehead .wrap{max-width:820px}
.pagehead p{max-width:none}
.group-head{max-width:820px;margin-left:auto;margin-right:auto}
.group-head p{max-width:none}
.pagehead h1,.group-head h2{text-wrap:balance}

/* rule 10: nav links to a full 44px */
.main-navigation .menu-item > a{display:inline-flex;align-items:center;justify-content:center;min-height:44px}


/* ---- September 10, 2026 — Susana's review ---- */

/* "the line with 23 works should be a little bigger and whiter" */
.pagehead p.lede{color:#F2F2F2;font-size:1.06rem;line-height:1.65;margin-top:14px}
@media (min-width:1024px){ .pagehead p.lede{font-size:1.18rem} }

/* "the white rectangulars don't look right, something doesn't feel harmonious"
   — the bordered boxes were too heavy against the black band. Quiet text links
   with a hairline underline sit inside the monochrome language instead. */
.jump{gap:2px 26px;margin-top:26px;justify-content:center}
.jump a{padding:11px 0;min-height:44px;border:0;background:none;color:#CFCFCF;
  font-size:.75rem;letter-spacing:.13em;border-bottom:1px solid transparent}
.jump a:hover,.jump a:focus-visible{background:none;color:var(--white);border-bottom-color:var(--white)}

/* artist portrait on About */
.portrait{margin:44px 0 0;text-align:center}
.portrait img{width:100%;max-width:512px;height:auto;margin:0 auto;display:block}
.portrait figcaption{margin-top:10px;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mid)}

/* her jewelry photographs share one shape, so give the grid a matching ratio */
.jewel-grid img{aspect-ratio:3/2;object-fit:cover}

/* rule 10: the homepage contact links were still short of 44px on wide screens */
.contact a.plain{display:inline-block;padding:12px 4px}

/* rule 4: the larger Art lede pushed the mobile band past the 640px fold —
   claw it back from the padding, not from the type size she asked for */
@media (max-width:767px){
  .pagehead{padding:38px 0 32px}
  .jump{margin-top:18px}
  .pagehead p.lede{font-size:1rem;margin-top:11px}
}


/* ============================================================
   MAIN MENU — WordPress-style (ul.menu > li.menu-item > a)
   The full menu stays visible at every width. On phones the five
   items share one row and scale with the screen so none is cut off.
   ============================================================ */
.main-navigation .menu-item{display:block;list-style:none}
.main-navigation .menu-item > a:hover,
.main-navigation .menu-item > a:focus-visible{color:#BFBFBF}
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a{color:var(--white);border-bottom:2px solid var(--white)}
.footer-menu .menu-item{list-style:none}
.footer-menu .current-menu-item > a{text-decoration:underline}

@media (max-width:767px){
  .site-header-inner{padding:8px 12px}
  .main-navigation .menu{flex-wrap:nowrap;justify-content:space-between;gap:0}
  .main-navigation .menu-item > a{padding:14px 6px;min-width:0;font-size:clamp(.64rem,3.1vw,.8rem);letter-spacing:.07em}
}
@media (max-width:359px){
  .main-navigation .menu-item > a{padding:14px 3px;letter-spacing:.04em}
}

/* ============================================================
   Utility classes (replace the old inline style="" attributes)
   ============================================================ */
.section-flush{padding-top:0}
.section-tight{padding-top:44px}
.wrap-flush{padding:0}
.full-img{width:100%;height:auto}
.title-spaced{margin-top:52px}
.cta-row{margin-top:32px}
.cta-row .btn + .btn{margin-left:8px}
.footer-logo{width:170px;height:auto;margin-bottom:10px}


/* ============================================================
   MOBILE / TABLET MENU  (hamburger + dropdown, under 1024px)
   Without JavaScript the old wrapped menu still shows (.js is
   only added by main.js), so nothing is ever hidden for good.
   ============================================================ */
.nav-toggle{display:none}

@media (max-width:1023px){
  .site-header-inner{flex-wrap:nowrap;justify-content:space-between;padding:8px 16px;min-height:64px}
  .custom-logo{width:140px}

  .js .nav-toggle{display:inline-flex;align-items:center;justify-content:center;
    width:48px;height:48px;margin-right:-8px;background:none;border:0;cursor:pointer;
    color:var(--white);-webkit-tap-highlight-color:transparent}
  .nav-toggle:focus-visible{outline:2px solid var(--white);outline-offset:2px}

  /* three bars that turn into an X */
  .nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{
    display:block;width:24px;height:2px;background:currentColor;border-radius:2px;
    transition:transform .25s ease,background-color .2s ease}
  .nav-toggle-bars{position:relative}
  .nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
  .nav-toggle-bars::before{top:-7px}
  .nav-toggle-bars::after{top:7px}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-7px) rotate(-45deg)}

  /* dropdown panel, full width under the header bar */
  .js .main-navigation{display:none;position:absolute;left:0;right:0;top:100%;width:auto;
    background:var(--dark);border-top:1px solid #333;box-shadow:0 14px 24px rgba(0,0,0,.35);
    max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;
    padding-bottom:env(safe-area-inset-bottom,0px)}
  .js .main-navigation.is-open{display:block;animation:navDrop .22s ease}
  @keyframes navDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

  .js .main-navigation .menu{flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;gap:0;padding:6px 0}
  .js .main-navigation .menu-item{border-bottom:1px solid #2e2e2e}
  .js .main-navigation .menu-item:last-child{border-bottom:0}
  .js .main-navigation .menu-item > a{display:flex;justify-content:flex-start;width:100%;
    min-height:56px;padding:0 24px;font-size:.9rem;letter-spacing:.16em;border-left:4px solid transparent}
  .js .main-navigation .menu-item > a:hover,
  .js .main-navigation .menu-item > a:focus-visible{background:#262626;color:var(--white)}
  /* current page: left bar + bolder text (never colour alone) */
  .js .main-navigation .current-menu-item > a{border-bottom:0;border-left-color:var(--white);font-weight:700;background:#242424}
}

/* a dark veil behind the open menu so the page is clearly "paused" */
.nav-backdrop{display:none}
@media (max-width:1023px){
  .nav-backdrop.is-open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40}
}
