:root{
    --bg:#f6efe5; --ink:#241811; --soft:#6e5a4a; --card:#fffaf2;
    --accent:#b8692f; --accent-dark:#934f1f; --line:#e7d9c5; --deep:#22170f; --cream:#f6efe5;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
  a{color:inherit}
  img{display:block;width:100%;height:100%;object-fit:cover}
  .wrap{max-width:1120px;margin:0 auto;padding:0 20px}
  h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.015em}
  em{font-style:italic;font-weight:400;color:var(--accent)}
  .eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:600;color:var(--accent)}

  .btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;padding:14px 26px;border-radius:999px;transition:background .25s,transform .25s,box-shadow .25s;box-shadow:0 8px 24px -10px rgba(184,105,47,.6)}
  .btn:hover{background:var(--accent-dark);transform:translateY(-2px)}
  .btn.ghost{background:transparent;color:currentColor;border:1.5px solid currentColor;box-shadow:none}
  .btn.ghost:hover{background:rgba(255,255,255,.12)}
  .btn svg{width:18px;height:18px;flex:none}

  /* nav */
  nav{position:absolute;top:0;left:0;right:0;z-index:10;color:#fff}
  nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
  .logo{font-family:Fraunces,serif;font-weight:600;font-size:1.45rem;text-decoration:none;letter-spacing:-.01em}
  .logo span{color:#e59a5c}
  .links{display:flex;gap:28px;align-items:center;font-size:.95rem}
  .links a{text-decoration:none;opacity:.85}
  .links a:hover{opacity:1}
  .links .btn{padding:10px 20px;opacity:1}

  /* hero */
  .hero{position:relative;min-height:min(92vh,780px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--deep)}
  .hero img{position:absolute;inset:0;object-position:center 30%}
  .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,16,9,.88) 0%,rgba(26,16,9,.55) 45%,rgba(26,16,9,.1) 100%),linear-gradient(0deg,rgba(26,16,9,.6),transparent 40%)}
  .hero .wrap{position:relative;z-index:1;padding-top:120px;padding-bottom:72px;width:100%}
  .hero .eyebrow{color:#eba56b}
  .hero h1{font-size:clamp(2.7rem,6.5vw,5rem);margin:16px 0 20px;max-width:11ch}
  .hero h1 em{color:#eba56b}
  .hero p{font-size:1.15rem;max-width:30em;color:#eadccb;margin-bottom:32px}
  .cta{display:flex;gap:12px;flex-wrap:wrap}
  .facts{display:flex;gap:36px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);max-width:560px;flex-wrap:wrap}
  .facts div{font-size:.88rem;color:#d8c6b2}
  .facts strong{display:block;font-family:Fraunces,serif;font-weight:600;font-size:1.35rem;color:#fff}

  section{padding:96px 0}
  .head{max-width:34em;margin-bottom:44px}
  .head h2{font-size:clamp(2rem,4.2vw,3rem);margin:12px 0}
  .head p{color:var(--soft);font-size:1.05rem}

  /* about */
  .about{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
  .about .pic{aspect-ratio:4/5;border-radius:24px;overflow:hidden;position:relative}
  .about .pic .badge{position:absolute;right:16px;bottom:16px;background:var(--card);border-radius:16px;padding:14px 18px;font-size:.88rem;box-shadow:0 12px 30px -12px rgba(0,0,0,.35)}
  .about .pic .badge strong{display:block;font-family:Fraunces,serif;font-size:1.15rem}
  .about h2{font-size:clamp(2rem,4vw,2.8rem);margin:12px 0 20px}
  .about p{color:var(--soft);margin-bottom:16px;font-size:1.05rem}
  .ticks{list-style:none;margin-top:24px;display:grid;gap:12px}
  .ticks li{display:flex;gap:12px;align-items:flex-start}
  .ticks li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/14px no-repeat}

  /* services */
  .services-sec{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .menu{display:grid;grid-template-columns:1fr 1fr;gap:0 56px}
  .item{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
  .item h3{font-size:1.3rem;margin-bottom:4px}
  .item p{color:var(--soft);font-size:.95rem}
  .item .price{font-family:Fraunces,serif;font-size:1.15rem;color:var(--accent-dark);white-space:nowrap}
  .note{margin-top:28px;color:var(--soft);font-size:.95rem}
  .note a{color:var(--accent-dark);font-weight:600}

  /* gallery */
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:14px}
  .gallery figure{border-radius:18px;overflow:hidden;background:var(--line)}
  .gallery figure:nth-child(1){grid-row:span 2}
  .gallery figure:nth-child(4){grid-column:span 2}
  .gallery img{transition:transform .6s}
  .gallery figure:hover img{transform:scale(1.04)}
  .small{margin-top:14px;font-size:.82rem;color:#a08a72}

  /* book */
  .book{background:var(--deep);color:var(--cream);border-radius:32px;padding:64px;display:grid;grid-template-columns:1.1fr 1fr;gap:56px}
  .book h2{font-size:clamp(2rem,4vw,3rem);margin:12px 0 16px}
  .book h2 em{color:#eba56b}
  .book p{color:#d4c2ad;margin-bottom:28px}
  .book .eyebrow{color:#eba56b}
  .hours{list-style:none;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:10px 24px}
  .hours li{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.97rem}
  .hours li:last-child{border:0}
  .hours .off{color:#8f7a66}
  .addr{margin-top:20px;font-size:.95rem;color:#d4c2ad}
  .addr a{color:#eba56b;font-weight:600}

  footer{padding:40px 0 110px;text-align:center;color:var(--soft);font-size:.9rem}
  footer .logo{display:block;font-size:1.3rem;margin-bottom:6px;color:var(--ink)}
  footer .logo span{color:var(--accent)}

  .bar{display:none;position:fixed;left:12px;right:12px;bottom:12px;z-index:20;gap:8px}
  .bar a{flex:1;justify-content:center}
  .bar .ghost{background:var(--cream);color:var(--ink);border-color:var(--ink)}

  @media (max-width:860px){
    .links a:not(.btn){display:none}
    .links .btn{display:none}
    .hero{min-height:88vh}
    .hero::after{background:linear-gradient(0deg,rgba(26,16,9,.95) 0%,rgba(26,16,9,.6) 55%,rgba(26,16,9,.25) 100%)}
    .hero .wrap{padding-bottom:48px}
    .facts{gap:24px;margin-top:36px}
    section{padding:68px 0}
    .about{grid-template-columns:1fr;gap:36px}
    .menu{grid-template-columns:1fr}
    .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
    .gallery figure:nth-child(4){grid-column:span 1}
    .book{grid-template-columns:1fr;padding:40px 24px;gap:36px;border-radius:24px}
    .bar{display:flex}
  }

  /* full price list */
  .groups{display:grid;grid-template-columns:1fr 1fr;gap:8px 56px}
  .group{padding:26px 0 8px}
  .group h3{font-size:1.4rem;margin-bottom:6px}
  .row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
  .row span:first-child{flex:1}
  .row small{display:block;color:var(--soft);font-size:.84rem}
  .row .price{font-family:Fraunces,serif;font-size:1.1rem;color:var(--accent-dark);white-space:nowrap;text-align:right}

  /* attention notice */
  .notice{border:2px solid var(--accent);border-radius:24px;padding:40px;background:var(--card);text-align:center;max-width:760px;margin:0 auto}
  .notice h2{font-size:clamp(1.8rem,3.6vw,2.4rem);letter-spacing:.06em;color:var(--accent-dark);margin:0 0 18px}
  .notice p{font-size:1.06rem;margin-bottom:10px}
  .notice strong{font-weight:600}
  .notice a{color:var(--accent-dark);font-weight:600}
  .contact-line{margin-top:20px;font-size:.97rem;color:#d4c2ad}
  .contact-line a{color:#eba56b;font-weight:600;text-decoration:none}

  /* inner pages */
  .page-head{background:var(--deep);color:#fff;padding:140px 0 64px}
  .page-head .eyebrow{color:#eba56b}
  .page-head h1{font-size:clamp(2.4rem,5.5vw,4rem);margin:14px 0 12px}
  .page-head h1 em{color:#eba56b}
  .page-head p{color:#d4c2ad;max-width:34em;font-size:1.08rem}
  .prose{max-width:720px}
  .prose h2{font-size:1.7rem;margin:40px 0 12px}
  .prose h2:first-child{margin-top:0}
  .prose p,.prose li{color:var(--soft);font-size:1.05rem;margin-bottom:12px}
  .prose ul{padding-left:22px}
  .prose strong{color:var(--ink)}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px;display:grid;gap:8px;align-content:start}
  .card h3{font-size:1.3rem}
  .card p{color:var(--soft)}
  .card a.big{font-family:Fraunces,serif;font-size:1.25rem;color:var(--accent-dark);text-decoration:none;overflow-wrap:anywhere}
  .card .btn{justify-self:start;margin-top:8px}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:56px;align-items:start}
  .split .hours{background:var(--deep);color:var(--cream)}
  .foot-links{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:12px}
  .foot-links a{color:var(--accent-dark);text-decoration:none;font-weight:500}
  nav .links a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:6px}

  @media (max-width:860px){
    .groups{grid-template-columns:1fr}
    .notice{padding:28px 20px}
    .page-head{padding:110px 0 44px}
    .cards,.split{grid-template-columns:1fr}
  }
  @media (max-width:860px){
    .links{gap:16px;font-size:.88rem}
    .links a.m{display:inline}
  }

  /* gallery of her own work: even grid */
  .gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:300px}
  .gallery figure:nth-child(1),.gallery figure:nth-child(4){grid-row:auto;grid-column:auto}
  @media (max-width:860px){ .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:220px} }

  .gallery figure{position:relative}
  .gallery figcaption{position:absolute;left:10px;bottom:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:.82rem;padding:6px 10px;border-radius:10px;width:fit-content}
