  :root{
    --magnolia:#2F4A3A;     /* deep magnolia-leaf green */
    --magnolia-dk:#22372B;
    --haint:#C9DED8;        /* porch-ceiling haint blue */
    --haint-wash:#EEF4F2;
    --white:#FDFDFB;
    --brass:#9C7F45;
    --ink:#1F2822;
    --muted:#5D6A62;
    --rule:#D9E3DE;
    --display:"Libre Caslon Display", "Libre Caslon Text", Georgia, serif;
    --serif:"Libre Caslon Text", Georgia, serif;
    --sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%;height:auto}
  a{color:var(--magnolia)}
  a:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
  h1,h2,h3{font-weight:400;margin:0}
  p{margin:0 0 1.1em}
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px}
  .narrow{max-width:720px;margin:0 auto;padding:0 28px}

  /* header */
  .masthead{text-align:center;padding:34px 28px 0}
  /* sticky header */
  .masthead{position:sticky;top:0;z-index:20;background:var(--white);transition:padding .2s}
  .masthead .tagline{transition:opacity .2s,max-height .2s;max-height:3em;overflow:hidden}
  .masthead.compact{padding-top:10px;box-shadow:0 1px 0 var(--rule)}
  .masthead.compact .wordmark{font-size:1.5rem}
  .masthead.compact .tagline{opacity:0;max-height:0}
  .masthead.compact .nav{margin-top:6px;border-top-color:transparent;padding:8px 0 10px}
  @media (prefers-reduced-motion:reduce){.masthead,.masthead .tagline{transition:none}}
  [id]{scroll-margin-top:120px}

  /* reviews */
  .reviews{text-align:center}
  .score{font-family:var(--serif);font-style:italic;color:var(--muted);margin-bottom:46px}
  .lead-quote{max-width:820px;margin:0 auto}
  .lead-quote p{font-family:var(--display);font-size:clamp(1.6rem,3.2vw,2.35rem);line-height:1.3;color:var(--magnolia);margin:0}
  .cite{display:block;margin-top:18px;font-family:var(--sans);font-size:.95rem;color:var(--muted);font-style:normal}
  .quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 48px;margin-top:64px;text-align:left}
  .quotes blockquote{margin:0;border-top:1px solid var(--brass);padding-top:18px}
  .quotes p{font-family:var(--serif);font-size:1.08rem;line-height:1.6;margin:0}
  @media (max-width:860px){.quotes{grid-template-columns:1fr;gap:34px}}

  .wordmark{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.5rem);letter-spacing:.01em;color:var(--magnolia);text-decoration:none}
  .tagline{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:1rem;margin-top:2px}
  .nav{display:flex;justify-content:center;gap:34px;margin:22px auto 0;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-width:1120px;font-size:.95rem}
  .nav a{text-decoration:none;color:var(--ink)}
  .nav a:hover{color:var(--brass)}
  @media (max-width:560px){.nav{gap:22px}.nav .opt{display:none}}

  /* hero */
  .hero-img{max-width:1240px;margin:36px auto 0;padding:0 28px}
  .hero-img img{width:100%;aspect-ratio:16/8;object-fit:cover;object-position:center 60%}
  .title{text-align:center;padding:52px 28px 12px}
  .title h1{font-family:var(--display);font-size:clamp(3rem,7.5vw,5.6rem);line-height:1;color:var(--magnolia)}
  .title .sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2vw,1.4rem);color:var(--ink);margin-top:16px}
  .brass-rule{width:64px;height:1px;background:var(--brass);margin:30px auto}
  .facts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;list-style:none;padding:0;margin:0 auto;max-width:760px;color:var(--muted);font-size:1rem}
  .btn{display:inline-block;margin-top:34px;padding:15px 34px;border:1px solid var(--magnolia);color:var(--magnolia);text-decoration:none;font-weight:500;letter-spacing:.02em;background:transparent;transition:background .2s,color .2s}
  .btn:hover{background:var(--magnolia);color:var(--white)}
  @media (prefers-reduced-motion:reduce){.btn{transition:none}}
  .center{text-align:center}

  section{padding:96px 0}
  .wash{background:var(--haint-wash)}
  h2{font-family:var(--display);font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.1;color:var(--magnolia);margin-bottom:20px}
  h3{font-family:var(--serif);font-size:1.2rem;color:var(--magnolia);margin-bottom:6px}

  /* welcome */
  .welcome{display:grid;grid-template-columns:1.35fr 1fr;gap:72px;align-items:start}
  .welcome .letter p{font-family:var(--serif);font-size:1.22rem;line-height:1.75}
  .welcome .sig{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:1.05rem}
  .details{border-top:1px solid var(--brass);padding-top:8px}
  .details dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0}
  .details dt,.details dd{padding:12px 0;border-bottom:1px solid var(--rule);margin:0}
  .details dt{color:var(--muted)}
  .details dd{text-align:right;padding-left:24px}
  @media (max-width:860px){.welcome{grid-template-columns:1fr;gap:44px}}

  /* photographs */
  .photos{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
  .photos figure{margin:0}
  .photos img{width:100%;object-fit:cover}
  .photos figcaption{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:.95rem;padding-top:10px}
  .p-full{grid-column:1 / -1}.p-full img{aspect-ratio:21/9}
  .p-7{grid-column:span 7}.p-5{grid-column:span 5}
  .p-6{grid-column:span 6}.p-4{grid-column:span 4}
  .p-6 img,.p-4 img{aspect-ratio:4/3}
  .p-7 img{aspect-ratio:16/10}
  .p-5 img{aspect-ratio:8/7}
  @media (max-width:760px){.p-7,.p-5,.p-6,.p-4{grid-column:1 / -1}.p-full img,.p-7 img,.p-5 img{aspect-ratio:4/3}}
  @media (max-width:640px){.hero-img{padding:0}.hero-img img{aspect-ratio:4/3}}

  /* booking */
  .book-head{text-align:center;max-width:640px;margin:0 auto 40px}
  .book-head p{color:var(--ink)}
  .widget{max-width:880px;margin:0 auto;background:var(--white);border:1px solid var(--haint);padding:24px;min-height:320px}
  .promises{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:980px;margin:48px auto 0;text-align:center}
  .promises h3{font-size:1.1rem}
  .promises p{font-size:.98rem;color:var(--muted);margin:0}
  @media (max-width:760px){.promises{grid-template-columns:1fr;gap:26px}}

  /* rooms */
  .rooms{display:grid;grid-template-columns:1fr 1fr;gap:40px 72px;margin-top:40px}
  .rooms p{margin:0;color:var(--ink)}
  @media (max-width:760px){.rooms{grid-template-columns:1fr;gap:30px}}

  /* know + nearby */
  .two{display:grid;grid-template-columns:1fr 1fr;gap:72px}
  .list{list-style:none;padding:0;margin:0}
  .list li{padding:15px 0;border-bottom:1px solid var(--rule)}
  .list li:first-child{border-top:1px solid var(--rule)}
  .list strong{font-weight:600;display:block;margin-bottom:2px}
  .list span{color:var(--muted)}
  .dist li{display:flex;justify-content:space-between;gap:18px}
  .dist li span{white-space:nowrap}
  @media (max-width:860px){.two{grid-template-columns:1fr;gap:56px}}

  /* faq */
  .faq details{border-bottom:1px solid var(--rule)}
  .faq details:first-of-type{border-top:1px solid var(--rule)}
  .faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-family:var(--serif);font-size:1.15rem;color:var(--ink);position:relative}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;border-right:1px solid var(--brass);border-bottom:1px solid var(--brass);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
  .faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
  @media (prefers-reduced-motion:reduce){.faq summary::after{transition:none}}
  .faq details p{margin:0;padding:0 0 22px;color:var(--ink);max-width:62ch}

  /* other stays */
  .stays{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px}
  .stay{text-decoration:none;color:var(--ink);display:block;border-top:1px solid var(--brass);padding-top:18px}
  .stay h3{font-family:var(--display);font-size:1.7rem}
  .stay p{color:var(--muted);margin:6px 0 0}
  .stay:hover h3{color:var(--brass)}
  @media (max-width:760px){.stays{grid-template-columns:1fr}}


  /* contact */
  .contact form{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin-top:30px}
  .contact label{display:block;font-size:.92rem;color:var(--muted);margin-bottom:6px}
  .contact input,.contact textarea{width:100%;font:inherit;color:var(--ink);background:var(--white);border:1px solid #BFCBC4;padding:12px 14px;border-radius:0}
  .contact input:focus,.contact textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
  .contact textarea{min-height:140px;resize:vertical}
  .contact .full{grid-column:1 / -1}
  .contact .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .contact button{font:inherit;font-weight:500;letter-spacing:.02em;padding:15px 34px;border:1px solid var(--magnolia);background:var(--magnolia);color:var(--white);cursor:pointer}
  .contact button:hover{background:var(--magnolia-dk)}
  .contact button:disabled{opacity:.6;cursor:default}
  .contact .status{font-family:var(--serif);font-style:italic;margin:0;align-self:center}
  .contact .status.err{color:#8A2F2F;font-style:normal;font-family:var(--sans)}
  @media (max-width:640px){.contact form{grid-template-columns:1fr}}

  /* footer */
  footer{background:var(--magnolia);color:#DCE6E0;padding:64px 0 48px;text-align:center}
  footer .wordmark{color:var(--white)}
  footer p{margin:10px 0 0;font-size:.95rem}
  footer a{color:var(--white)}

  /* portrait photographs */
  .p-3{grid-column:span 3}.p-3 img{aspect-ratio:3/4}
  @media (max-width:760px){.p-3{grid-column:span 6}}

  /* home */
  .home-hero{text-align:center;padding:64px 28px 8px}
  .home-hero h1{font-family:var(--display);font-size:clamp(2.8rem,6.5vw,5rem);line-height:1.05;color:var(--magnolia)}
  .home-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2vw,1.4rem);margin-top:18px}
  .homes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
  .home-card{text-decoration:none;color:var(--ink);display:block}
  .home-card img{width:100%;aspect-ratio:4/5;object-fit:cover}
  .home-card .where{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);margin:20px 0 6px}
  .home-card h2{font-size:clamp(1.7rem,2.4vw,2.1rem);margin-bottom:10px}
  .home-card p{color:var(--muted);margin:0 0 14px}
  .home-card .go{color:var(--magnolia);font-weight:500;border-bottom:1px solid var(--brass)}
  .home-card:hover h2{color:var(--brass)}
  @media (max-width:900px){.homes{grid-template-columns:1fr;gap:56px}.home-card img{aspect-ratio:4/3}}
  .why{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;text-align:center;max-width:980px;margin:0 auto}
  .why h3{font-size:1.15rem}.why p{color:var(--muted);margin:0}
  @media (max-width:760px){.why{grid-template-columns:1fr;gap:26px}}

  /* back to all stays */
  .nav .back{display:inline-flex;white-space:nowrap;align-items:center;gap:9px;color:var(--brass);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding-left:34px;margin-left:-4px;border-left:1px solid var(--rule)}
  .nav .back::before{content:"";width:7px;height:7px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:1px}
  .nav .back:hover{color:var(--magnolia)}
  @media (max-width:560px){.nav{gap:16px;font-size:.9rem}.nav .back{padding-left:14px;margin-left:-2px;letter-spacing:.08em;font-size:.74rem;gap:7px}}
  @media (max-width:380px){.nav{gap:12px;font-size:.86rem}.nav .back{padding-left:12px}}
