/* =========================================================
   ECEVİT HANI · KÜRE — stylesheet
   Palette grounded in the actual building: whitewashed
   plaster walls, oxide-brown timber trim, copper kettles,
   deep pine forest, Küre Dağları stone.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --paper:      #F2ECDF;   /* whitewashed plaster */
  --paper-2:    #EAE2D1;   /* slightly deeper plaster, for cards */
  --ink:        #241E19;   /* near-black warm walnut, body text */
  --ink-soft:   #4B4038;   /* softened body text */
  --timber:     #4A2F22;   /* dark oxide-brown timber trim */
  --timber-2:   #38231A;   /* deepest timber, nav/footer bg */
  --pine:       #37472C;   /* deep pine forest green */
  --pine-soft:  #55603F;
  --copper:     #B4703C;   /* hammered copper accent */
  --copper-soft:#D79A66;
  --stone:      #948C79;   /* Küre Dağları stone, for captions/rules */
  --line:       rgba(36,30,25,0.14);
  --line-light: rgba(242,236,223,0.22);

  --font-display: 'Fraunces', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --container: 1180px;
  --gutter: clamp(20px, 5vw, 64px);

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:300;
  padding:10px 14px;
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 8px 24px rgba(36,30,25,0.2);
  transform:translateY(-150%);
  transition:transform .25s var(--ease);
}
.skip-link:focus{ transform:translateY(0); }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-family:var(--font-body);
  font-weight:600;
  font-size:12.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--copper);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:26px;
  height:1px;
  background:var(--copper);
  display:inline-block;
}
.eyebrow.on-dark{ color:var(--copper-soft); }

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  color:var(--ink);
  margin:0;
  line-height:1.08;
  letter-spacing:-0.01em;
}
h2{ font-size:clamp(30px,4vw,46px); }
h3{ font-size:clamp(20px,2.4vw,26px); }
em{ font-style:italic; color:var(--copper); }

p{ margin:0; }
.lede{
  font-size:clamp(16px,1.6vw,18.5px);
  color:var(--ink-soft);
  max-width:52ch;
}

/* ---------- Pine sprig divider (signature motif) ---------- */
.sprig{
  width:20px; height:20px;
  flex-shrink:0;
  opacity:0.85;
}
.divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin: 8px 0 0;
}
.divider .rule{ height:1px; width:64px; background:var(--line); }
.divider.on-dark .rule{ background:var(--line-light); }
.divider .sprig path{ stroke:var(--copper); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 26px;
  font-size:14px;
  font-weight:600;
  letter-spacing:0.03em;
  border-radius:2px;
  border:1px solid transparent;
  transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn-solid{
  background:var(--copper);
  color:#fff;
  border-color:var(--copper);
}
.btn-solid:hover{ background:#9c5d2f; border-color:#9c5d2f; transform:translateY(-1px); }
.btn-ghost{
  background:transparent;
  color:var(--paper);
  border-color:rgba(242,236,223,0.55);
}
.btn-ghost:hover{ background:rgba(242,236,223,0.12); border-color:var(--paper); }
.btn-ghost.dark{ color:var(--ink); border-color:var(--line); }
.btn-ghost.dark:hover{ background:rgba(36,30,25,0.06); }

/* ============ NAV ============ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:18px 0;
  background:transparent;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.nav.solid{
  background:rgba(56,35,26,0.96);
  padding:12px 0;
  box-shadow:0 6px 24px rgba(0,0,0,0.18);
}
.nav .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; gap:14px; }
.brand-logo{
  width:58px; height:58px; object-fit:contain;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.35));
  transition:width .4s var(--ease), height .4s var(--ease);
}
.nav.solid .brand-logo{ width:50px; height:50px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.brand-text .name{ font-family:var(--font-display); font-size:19px; color:var(--paper); letter-spacing:0.02em; }
.brand-text .place{ font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--copper-soft); margin-top:4px; }

.nav-links{ display:flex; align-items:center; gap:24px; }
.nav-links a{
  font-size:13px; font-weight:500; letter-spacing:0.02em;
  color:rgba(242,236,223,0.85);
  position:relative; padding:4px 0;
  white-space:nowrap;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--copper-soft); transition:width .3s var(--ease);
}
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:18px; }
.instagram-link{
  width:42px; height:42px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--paper);
  border:1px solid rgba(242,236,223,0.55);
  border-radius:50%;
  transition:color .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.instagram-link svg{ width:20px; height:20px; display:block; }
.instagram-link:hover,.instagram-link:focus-visible{
  color:#fff;
  background:var(--copper);
  border-color:var(--copper);
  transform:translateY(-1px);
}
.instagram-link:focus-visible{ outline:2px solid var(--copper-soft); outline-offset:3px; }
.nav-toggle{ display:none; background:none; border:none; padding:6px; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--paper); margin:5px 0; transition:transform .3s, opacity .3s; }

/* ============ HERO ============ */
.hero{
  position:relative;
  height:100svh;
  min-height:560px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:var(--paper);
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:50% 30%;
  transform:scale(1.06);
  animation:hero-zoom 18s var(--ease) forwards;
}
@keyframes hero-zoom{ from{ transform:scale(1.06);} to{ transform:scale(1);} }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(36,25,18,0.35) 0%, rgba(30,20,14,0.30) 40%, rgba(20,13,9,0.86) 100%);
}
.hero-inner{
  position:relative; z-index:2;
  padding-bottom:clamp(56px,9vh,110px);
  width:100%;
}
.hero-eyebrow{ color:var(--copper-soft); }
.hero h1{
  color:var(--paper);
  font-size:clamp(38px,6.4vw,78px);
  max-width:16ch;
  margin-top:18px;
}
.hero .lede{
  color:rgba(242,236,223,0.86);
  margin-top:20px;
  max-width:46ch;
}
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }

.scroll-cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(242,236,223,0.65); font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase;
}
.scroll-cue .line{ width:1px; height:34px; background:linear-gradient(180deg, rgba(242,236,223,0.8), transparent); animation:cue 2.2s ease-in-out infinite; }
@keyframes cue{ 0%{ transform:scaleY(0.3); transform-origin:top;} 50%{ transform:scaleY(1); transform-origin:top;} 100%{ transform:scaleY(0.3); transform-origin:bottom;} }

/* ============ SECTIONS generic ============ */
section{ position:relative; }
.section-pad{ padding:clamp(64px,10vw,132px) 0; }

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:.12s; }
.reveal-delay-2{ transition-delay:.24s; }
.reveal-delay-3{ transition-delay:.36s; }

/* ============ Arch media frame (signature element) ============ */
.arch-frame{
  position:relative;
  overflow:hidden;
  clip-path: path('M0,64 C0,28.6538 28.6538,0 64,0 L 236,0 C271.346,0 300,28.6538 300,64 L300,420 L0,420 Z');
  aspect-ratio: 300/420;
  background:var(--paper-2);
}
.arch-frame img{ width:100%; height:100%; object-fit:cover; }
.arch-frame.wide{
  clip-path: path('M0,58 C0,25.9675 25.9675,0 58,0 L 342,0 C374.033,0 400,25.9675 400,58 L400,300 L0,300 Z');
  aspect-ratio:400/300;
}

/* ============ STORY ============ */
.story-grid{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:clamp(36px,6vw,90px);
  align-items:center;
}
.story-text h2{ margin-top:14px; }
.story-text .lede{ margin-top:20px; }
.story-text .lede + .lede{ margin-top:14px; }

.facts{
  margin-top:38px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--line);
}
.fact{
  padding:18px 18px 0 0;
  border-right:1px solid var(--line);
}
.fact:last-child{ border-right:none; }
.fact .label{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); }
.fact .value{ font-family:var(--font-display); font-size:17px; margin-top:8px; color:var(--ink); }

.story-media{ position:relative; }
.story-media figcaption{
  margin-top:14px;
  font-size:12.5px; color:var(--stone); letter-spacing:0.02em;
  display:flex; align-items:center; gap:8px;
}
.story-media figcaption::before{ content:""; width:16px; height:1px; background:var(--stone); }

/* ============ TARİHÇE (History timeline) ============ */
.tarihce{ background:var(--paper-2); }
.tarihce-intro{ max-width:70ch; }
.tarihce-intro .lede{ margin-top:18px; max-width:68ch; }

.tarihce-grid{
  margin-top:60px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:44px 32px;
}

.t-card{
  display:flex;
  flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 18px 40px -26px rgba(36,30,25,0.3);
}

.t-frame{
  position:relative;
  overflow:hidden;
  cursor:zoom-in;
  aspect-ratio:4/5;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.t-frame img{
  width:100%; height:100%; display:block; object-fit:cover; object-position:top center;
  transition:transform .6s var(--ease);
}
.t-frame:hover img{ transform:scale(1.045); }
.t-frame .zoom-tag{
  position:absolute; top:14px; right:14px;
  width:38px; height:38px; border-radius:50%;
  background:rgba(36,30,25,0.72);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(-6px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.t-frame:hover .zoom-tag{ opacity:1; transform:translateY(0); }
.t-frame .zoom-tag svg{ width:16px; height:16px; }
.t-frame .zoom-tag path{ stroke:var(--paper); }

.t-body{ padding:26px 26px 30px; display:flex; flex-direction:column; flex:1; }
.t-era{
  font-size:10.5px; letter-spacing:0.15em; text-transform:uppercase;
  color:var(--copper); font-weight:600;
  display:flex; align-items:center; gap:9px;
}
.t-era::before{ content:""; width:16px; height:1px; background:var(--copper); }
.t-body h3{ margin-top:12px; font-size:19px; }
.t-body p{ margin-top:11px; font-size:14px; color:var(--ink-soft); line-height:1.68; }

@media (max-width:1080px){
  .tarihce-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:620px){
  .tarihce-grid{ grid-template-columns:1fr; gap:32px; }
  .t-frame{ aspect-ratio:16/11; }
}

/* ============ SOFRA (restaurant) ============ */
.sofra{
  background:var(--timber-2);
  color:var(--paper);
  background-image:
    radial-gradient(ellipse 900px 500px at 12% -10%, rgba(180,112,60,0.16), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 110%, rgba(85,96,63,0.22), transparent 55%);
}
.sofra .eyebrow{ color:var(--copper-soft); }
.sofra h2{ color:var(--paper); margin-top:14px; }
.sofra .lede{ color:rgba(242,236,223,0.78); margin-top:18px; }

.menu-board{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line-light);
  border-bottom:1px solid var(--line-light);
}
.menu-item{
  padding:28px 22px;
  border-right:1px solid var(--line-light);
}
.menu-item:last-child{ border-right:none; }
.menu-item .glyph{ width:30px; height:30px; margin-bottom:16px; }
.menu-item .glyph path,.menu-item .glyph circle,.menu-item .glyph line{ stroke:var(--copper-soft); }
.menu-item h4{ color:var(--paper); font-size:18px; font-weight:500; }
.menu-item p{ margin-top:10px; font-size:13.6px; color:rgba(242,236,223,0.66); line-height:1.55; }

.sofra-gallery{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.sofra-gallery .arch-frame{ background:rgba(242,236,223,0.06); }

/* ============ VIDEO / TOUR ============ */
.tour{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap:clamp(36px,6vw,90px);
  align-items:center;
}
.tour-text .lede{ margin-top:18px; }
.tour-text ul{ margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.tour-text li{ display:flex; align-items:baseline; gap:12px; font-size:14.5px; color:var(--ink-soft); }
.tour-text li::before{ content:"—"; color:var(--copper); }

.phone-shell{
  position:relative;
  max-width:300px;
  margin:0 auto;
  background:var(--timber);
  padding:14px 14px 22px;
  border-radius:26px;
  box-shadow:0 30px 60px -20px rgba(36,30,25,0.45), 0 0 0 1px rgba(74,47,34,0.5);
}
.phone-shell::before{
  content:"";
  position:absolute; top:26px; left:50%; transform:translateX(-50%);
  width:44px; height:4px; border-radius:4px; background:rgba(242,236,223,0.28);
}
.phone-video-wrap{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  aspect-ratio:9/16;
  background:#000;
  margin-top:18px;
}
.phone-video-wrap video{ width:100%; height:100%; object-fit:cover; display:block; }
.play-btn{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,13,9,0.28);
  border:none;
  transition:opacity .35s var(--ease), background .35s;
}
.play-btn .circle{
  width:64px; height:64px; border-radius:50%;
  background:rgba(242,236,223,0.92);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.play-btn:hover .circle{ transform:scale(1.08); }
.play-btn svg{ width:20px; height:20px; margin-left:3px; }
.play-btn.hidden{ opacity:0; pointer-events:none; }
.pause-btn{
  position:absolute; right:14px; bottom:14px; z-index:2;
  width:42px; height:42px; padding:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--paper);
  background:rgba(36,30,25,0.72);
  border:1px solid rgba(242,236,223,0.45);
  border-radius:50%;
  opacity:0; transform:translateY(6px);
  pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.pause-btn.visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
.pause-btn:hover,.pause-btn:focus-visible{ background:var(--copper); border-color:var(--copper); }
.pause-btn svg{ width:16px; height:16px; display:block; }
.pause-btn:focus-visible{ outline:2px solid var(--copper-soft); outline-offset:3px; }

/* ============ GARDEN ============ */
.garden{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.garden-media{ position:relative; overflow:hidden; height:clamp(420px,40vw,520px); }
.garden-media img{ width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.garden-text{
  background:var(--pine);
  color:var(--paper);
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(32px,4vw,56px);
}
.garden-text .eyebrow{ color:var(--copper-soft); }
.garden-text h2{ color:var(--paper); margin-top:14px; }
.garden-text .lede{ color:rgba(242,236,223,0.82); margin-top:14px; }
.garden-text ul{ margin-top:20px; display:flex; flex-direction:column; gap:8px; }
.garden-text li{ font-size:14.5px; color:rgba(242,236,223,0.86); display:flex; gap:12px; }
.garden-text li::before{ content:""; width:6px; height:6px; margin-top:8px; border-radius:50%; background:var(--copper-soft); flex-shrink:0; }

/* ============ GALLERY MASONRY ============ */
.gallery-masonry{
  columns:4 220px;
  column-gap:20px;
  margin-top:52px;
}
.gallery-empty{
  column-span:all;
  color:var(--stone);
  text-align:center;
  padding:32px 0;
}
.masonry-item{
  position:relative;
  break-inside:avoid;
  margin:0 0 20px;
  overflow:hidden;
  background:var(--paper-2);
  border:1px solid var(--line);
  box-shadow:0 16px 34px -26px rgba(36,30,25,0.45);
}
.gallery-image{
  width:100%;
  height:auto;
  display:block;
  cursor:zoom-in;
  transition:transform .6s var(--ease), filter .35s var(--ease);
}
.masonry-item::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 65%,rgba(36,30,25,0.22));
  opacity:0;
  transition:opacity .35s var(--ease);
}
.masonry-item:hover .gallery-image{ transform:scale(1.035); filter:saturate(1.04); }
.masonry-item:hover::after{ opacity:1; }

@media (max-width:980px){
  .gallery-masonry{ columns:3 200px; }
}
@media (max-width:680px){
  .gallery-masonry{ columns:2 150px; column-gap:14px; margin-top:38px; }
  .masonry-item{ margin-bottom:14px; }
}
@media (max-width:420px){
  .gallery-masonry{ columns:1; }
}

.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(18,12,9,0.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .35s var(--ease);
  padding:40px;
}
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox-figure{ display:flex; flex-direction:column; align-items:center; gap:14px; max-width:min(90vw,860px); }
.lightbox img{ max-width:min(90vw,860px); max-height:80vh; object-fit:contain; border-radius:4px; }
.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border:1px solid rgba(242,236,223,0.35);
  border-radius:50%;
  background:rgba(242,236,223,0.1);
  color:var(--paper);
  font-size:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .3s var(--ease), border-color .3s var(--ease), opacity .3s;
}
.lightbox-prev{ left:28px; }
.lightbox-next{ right:28px; }
.lightbox-nav:hover:not(:disabled),
.lightbox-nav:focus-visible{ background:var(--copper); border-color:var(--copper); }
.lightbox-nav:disabled{ opacity:.25; cursor:not-allowed; }
@media (max-width:640px){
  .lightbox{ padding:22px 14px 70px; }
  .lightbox-nav{ top:auto; bottom:18px; transform:none; width:42px; height:42px; }
  .lightbox-prev{ left:calc(50% - 52px); }
  .lightbox-next{ right:calc(50% - 52px); }
}

/* ============ REZERVASYON MODAL ============ */
.res-modal{
  position:fixed; inset:0; z-index:210;
  background:rgba(18,12,9,0.6);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .35s var(--ease);
  padding:28px;
  overflow-y:auto;
}
.res-modal.open{ opacity:1; pointer-events:auto; }
.res-card{
  position:relative;
  background:var(--paper);
  width:100%; max-width:520px;
  margin:auto;
  padding:clamp(28px,4vw,46px);
  border-radius:3px;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.5);
  transform:translateY(14px);
  transition:transform .4s var(--ease);
}
.res-modal.open .res-card{ transform:translateY(0); }
.res-card h3{ margin-top:10px; font-size:clamp(22px,3vw,28px); }
.res-sub{ margin-top:10px; font-size:14px; color:var(--ink-soft); max-width:42ch; }
.res-card .lightbox-close{
  position:absolute; top:16px; right:16px;
  width:36px; height:36px;
  background:rgba(36,30,25,0.06); border:1px solid var(--line); color:var(--ink);
}

#reservationForm{ margin-top:26px; display:flex; flex-direction:column; gap:16px; }
.res-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.res-row-single{ grid-template-columns:1fr; }
.res-field{ display:flex; flex-direction:column; gap:7px; }
.res-field label{ font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--stone); font-weight:600; }
.res-field label .opt{ text-transform:none; letter-spacing:0; color:var(--stone); font-weight:400; }
.res-field input{
  font-family:var(--font-body);
  font-size:15px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:2px;
  background:#fff;
  color:var(--ink);
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.res-field input:focus{
  outline:none;
  border-color:var(--copper);
  box-shadow:0 0 0 3px rgba(180,112,60,0.15);
}
.res-submit{ justify-content:center; margin-top:6px; width:100%; }
.res-note{ margin-top:2px; font-size:12px; color:var(--stone); text-align:center; }

/* ============ SCROLL TO TOP ============ */
.to-top{
  position:fixed; right:24px; bottom:24px; z-index:80;
  width:48px; height:48px; border-radius:50%;
  background:var(--timber-2);
  border:1px solid rgba(242,236,223,0.18);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px -10px rgba(0,0,0,0.45);
  opacity:0; transform:translateY(10px);
  pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), background .3s;
}
.to-top.visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
.to-top:hover{ background:var(--copper); }
.to-top svg{ width:18px; height:18px; }
.to-top path{ stroke:var(--paper); }

@media (max-width:640px){
  .to-top{ right:16px; bottom:16px; width:44px; height:44px; }
  .res-row{ grid-template-columns:1fr; }
}
.lightbox-close{
  position:absolute; top:26px; right:26px;
  width:44px; height:44px; border-radius:50%;
  background:rgba(242,236,223,0.1); border:1px solid rgba(242,236,223,0.3);
  color:var(--paper); font-size:20px; display:flex; align-items:center; justify-content:center;
}

/* ============ LOCATION / CONTACT ============ */
.location{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
}
.map-wrap{ position:relative; min-height:460px; background:var(--paper-2); filter:sepia(12%) saturate(85%); }
.map-wrap iframe{ width:100%; height:100%; min-height:460px; border:0; display:block; }

.contact-card{
  background:var(--timber-2);
  color:var(--paper);
  padding:clamp(40px,5vw,72px);
  display:flex; flex-direction:column; justify-content:center;
}
.contact-card .eyebrow{ color:var(--copper-soft); }
.contact-card h2{ color:var(--paper); margin-top:14px; font-size:clamp(26px,3vw,36px); }
.contact-card .lede{ color:rgba(242,236,223,0.78); margin-top:16px; }

.contact-rows{ margin-top:34px; display:flex; flex-direction:column; gap:22px; }
.contact-row{ display:flex; gap:16px; align-items:flex-start; }
.contact-row .ic{ width:20px; height:20px; margin-top:2px; flex-shrink:0; }
.contact-row .ic path,.contact-row .ic circle{ stroke:var(--copper-soft); }
.contact-row .t-label{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); }
.contact-row .t-value{ font-size:15.5px; margin-top:4px; color:var(--paper); line-height:1.6; }
.contact-row .t-value a{ color:var(--paper); transition:color .25s var(--ease); }
.contact-row .t-value a:hover{ color:var(--copper-soft); }

.contact-actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }

/* ============ FOOTER ============ */
footer{
  background:var(--timber-2);
  color:rgba(242,236,223,0.6);
  border-top:1px solid var(--line-light);
}
.footer-inner{
  padding:52px 0 34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:start;
  column-gap:clamp(32px,6vw,96px);
  row-gap:32px;
}
.footer-brand{ display:flex; gap:18px; align-items:center; }
.footer-logo{ width:64px; height:64px; object-fit:contain; flex-shrink:0; }
.footer-brand .name{ font-family:var(--font-display); color:var(--paper); font-size:20px; }
.footer-brand .addr{ font-size:12.5px; color:rgba(242,236,223,0.55); margin-top:6px; max-width:34ch; line-height:1.6; }
.foot-phones{ margin-top:8px; }
.foot-phones a{ color:rgba(242,236,223,0.75); }
.foot-phones a:hover{ color:var(--copper-soft); }
.footer-charge{ display:flex; flex-direction:column; align-items:center; text-align:center; justify-self:center; min-width:230px; }
.ev-charge-illustration{ display:block; width:130px; max-width:100%; min-width:0; height:auto; object-fit:contain; margin:0 auto 8px; }
.footer-charge-text{ max-width:24ch; text-align:center; margin-top:0 !important; font-size:12.5px; color:rgba(242,236,223,0.55); line-height:1.6; }
.footer-links{ display:flex; gap:40px; flex-wrap:wrap; }
.footer-col h5{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); margin:0 0 14px; font-weight:600; }
.footer-col ul{ display:flex; flex-direction:column; gap:9px; }
.footer-col a{ font-size:13.5px; color:rgba(242,236,223,0.72); }
.footer-col a:hover{ color:var(--copper-soft); }
.footer-bottom{
  border-top:1px solid var(--line-light);
  padding:20px 0;
  font-size:12px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  color:rgba(242,236,223,0.45);
}

/* ============ Responsive ============ */
@media (max-width:1140px){
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
}
@media (max-width:980px){
  .story-grid, .tour, .location{ grid-template-columns:1fr; }
  .story-media{ order:-1; }
  .garden{ grid-template-columns:1fr; }
  .garden-media{ min-height:0; height:auto; aspect-ratio:16/9; }
  .menu-board{ grid-template-columns:repeat(2,1fr); }
  .menu-item:nth-child(2){ border-right:none; }
  .menu-item:nth-child(1),.menu-item:nth-child(2){ border-bottom:1px solid var(--line-light); }
  .sofra-gallery{ grid-template-columns:repeat(2,1fr); }
  .facts{ grid-template-columns:1fr; }
  .fact{ border-right:none; border-bottom:1px solid var(--line); padding:16px 0; }
  .map-wrap{ min-height:340px; }
  .map-wrap iframe{ min-height:340px; }
  .footer-inner{ grid-template-columns:1fr auto; }
  .footer-charge{ grid-column:2; grid-row:1; }
  .footer-links{ grid-column:1 / -1; grid-row:2; justify-self:start; }
}

@media (max-width:640px){
  .nav .container{ gap:12px; }
  .brand{ gap:8px; }
  .brand-logo,.nav.solid .brand-logo{ width:46px; height:46px; }
  .brand-text .name{ font-size:16px; }
  .brand-text .place{ font-size:8.5px; letter-spacing:0.12em; }
  .nav-cta{ gap:8px; }
  .nav-cta .btn{ padding:11px 14px; font-size:12px; }
  .instagram-link{ width:36px; height:36px; }
  .instagram-link svg{ width:18px; height:18px; }
  .hero h1{ max-width:14ch; }
  .hero-actions{ flex-direction:column; align-items:flex-start; }
  .sofra-gallery{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr; }
  .footer-charge{ grid-column:auto; grid-row:auto; justify-self:center; }
  .footer-links{ grid-column:auto; grid-row:auto; justify-self:start; }
  .ev-charge-illustration{ width:min(130px,78vw); min-width:0; }
}

/* Mobile nav panel */
.mobile-panel{
  position:fixed; inset:0 0 auto 0; z-index:99;
  background:var(--timber-2);
  padding:100px 28px 40px;
  transform:translateY(-100%);
  transition:transform .4s var(--ease);
  display:flex; flex-direction:column; gap:22px;
}
.mobile-panel.open{ transform:translateY(0); }
.mobile-panel a{ font-family:var(--font-display); font-size:26px; color:var(--paper); }
.mobile-panel .btn{ margin-top:10px; align-self:flex-start; }
