:root{
  --paper:#f5efe3;
  --paper-2:#ece1cd;
  --paper-3:#e3d4b8;
  --ink:#211d1a;
  --ink-soft:#544c42;
  --ink-faint:#8c8172;
  --accent:#a8552b;
  --accent-dark:#7c3e1e;
  --accent-soft:#e9cca7;
  --olive:#6b6a4f;
  --line:#d9c9a6;
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --radius-pill:999px;
  --shadow-sm: 0 1px 2px rgba(33,29,26,.07), 0 2px 8px rgba(33,29,26,.05);
  --shadow-md: 0 10px 28px rgba(33,29,26,.09), 0 3px 8px rgba(33,29,26,.06);
  --shadow-lg: 0 28px 64px rgba(33,29,26,.16), 0 10px 24px rgba(33,29,26,.08);
  --shadow-accent: 0 16px 36px rgba(168,85,43,.28);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Rubik', sans-serif;
  background:var(--paper);
  color:var(--ink-soft);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  color:var(--ink);
  font-weight:600;
  line-height:1.18;
  margin:0;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}

.noise-ovl{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.045; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.6rem; border-radius:var(--radius-pill);
  font-weight:500; font-size:.95rem; transition:all .3s ease;
  white-space:nowrap; min-height:48px;
}
.btn-pri{
  background:var(--ink); color:var(--paper);
  box-shadow:var(--shadow-sm);
}
.btn-pri:hover{ background:var(--accent); box-shadow:var(--shadow-accent); transform:translateY(-2px); }
.btn-sec{
  background:transparent; color:var(--ink); border:1.5px solid var(--line);
}
.btn-sec:hover{ border-color:var(--ink); background:var(--paper-2); transform:translateY(-2px); }
.btn-ghost{
  background:transparent; color:var(--ink); border:1.5px solid var(--ink);
}
.btn-ghost:hover{ background:var(--ink); color:var(--paper); transform:translateY(-2px); }
.btn-lg{ padding:1.1rem 2.2rem; font-size:1.02rem; }


.hdr{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:1.1rem 0; transition:transform .45s cubic-bezier(.4,0,.2,1), background .3s ease, box-shadow .3s ease;
  background:rgba(245,239,227,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(217,201,166,.5);
}
.hdr.hide{ transform:translateY(-110%); }
.hdr.scrolled{ box-shadow:var(--shadow-sm); }
.hdr-inner{
  max-width:1280px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.hdr-logo{ display:flex; align-items:center; gap:.6rem; font-weight:600; font-size:1.15rem; color:var(--ink); flex-shrink:0; }
.hdr-nav{
  display:none; align-items:center; gap:.35rem;
  background:var(--paper-2); padding:.35rem; border-radius:var(--radius-pill);
  border:1px solid var(--line);
}
.hdr-nav a{
  padding:.6rem 1.15rem; border-radius:var(--radius-pill); font-size:.9rem; font-weight:500;
  color:var(--ink-soft); transition:all .3s ease; white-space:nowrap;
}
.hdr-nav a:hover{ color:var(--ink); background:rgba(33,29,26,.05); }
.hdr-nav a.active{ background:var(--ink); color:var(--paper); }
.hdr-cta{ display:none; flex-shrink:0; }
.hdr-burger{
  display:flex; flex-direction:column; gap:5px; width:44px; height:44px;
  align-items:center; justify-content:center; flex-shrink:0;
}
.hdr-burger span{ width:22px; height:2px; background:var(--ink); border-radius:2px; transition:all .3s ease; }

@media (min-width:1024px){
  .hdr-nav{ display:flex; }
  .hdr-cta{ display:inline-flex; }
  .hdr-burger{ display:none; }
}


.mnu-ovl{
  position:fixed; inset:0; background:rgba(33,29,26,.55); backdrop-filter:blur(2px);
  z-index:190; opacity:0; visibility:hidden; transition:opacity .4s ease;
}
.mnu-ovl.active{ opacity:1; visibility:visible; }
.mnu{
  position:fixed; top:0; right:0; height:100vh; width:min(86vw,380px);
  background:var(--paper); z-index:200;
  transform:translateX(100%); transition:transform .45s cubic-bezier(.4,0,.2,1);
  box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column; padding:2rem 1.8rem;
}
.mnu.active{ transform:translateX(0); }
.mnu-close{
  align-self:flex-end; width:44px; height:44px; font-size:1.3rem; color:var(--ink);
  border-radius:50%; transition:background .3s ease;
}
.mnu-close:hover{ background:var(--paper-2); }
.mnu-list{ display:flex; flex-direction:column; gap:.4rem; margin-top:2rem; }
.mnu-list a{
  font-size:1.25rem; font-weight:500; color:var(--ink); padding:.9rem .3rem;
  border-bottom:1px solid var(--line); transition:color .3s ease, padding-left .3s ease;
}
.mnu-list a:hover, .mnu-list a.active{ color:var(--accent); padding-left:.7rem; }
.mnu-foot{ margin-top:auto; padding-top:1.5rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--ink-faint); }
.mnu-foot p{ margin:.3rem 0; }


.hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end; padding:9rem 0 5rem; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:-1; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.15) contrast(1.05); }
.hero-bg::after{ content:''; }
.hero::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(33,29,26,.55) 0%, rgba(33,29,26,.35) 35%, rgba(245,239,227,.97) 96%);
}
.hero-inner{ position:relative; z-index:2; max-width:1280px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem); width:100%; }
.hero-tag{
  display:inline-block; color:#f3e7d3; background:rgba(33,29,26,.4); backdrop-filter:blur(6px);
  padding:.5rem 1.1rem; border-radius:var(--radius-pill); font-size:.85rem; font-weight:500;
  border:1px solid rgba(255,255,255,.2); margin-bottom:1.5rem;
}
.hero-h1{
  font-size:clamp(2.3rem, 5.5vw, 4.2rem); color:#fbf6ec; max-width:16ch; margin-bottom:1.5rem;
  letter-spacing:-.01em;
}
.hero-typed{ color:var(--accent-soft); }
.hero-sub{
  color:#e7ddc9; max-width:56ch; font-size:clamp(1rem,1.5vw,1.15rem); margin-bottom:2.2rem;
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.5rem; }
.hero-cta .btn-ghost{ color:#fbf6ec; border-color:rgba(255,255,255,.5); }
.hero-cta .btn-ghost:hover{ background:#fbf6ec; color:var(--ink); }
.hero-chips{ display:flex; flex-wrap:wrap; gap:.75rem; }
.chip{
  display:inline-flex; align-items:center; gap:.5rem; font-size:.82rem; font-weight:500;
  padding:.55rem 1rem; border-radius:var(--radius-pill); background:rgba(251,246,236,.12);
  color:#f3e7d3; border:1px solid rgba(255,255,255,.18);
}


.sec{ padding:clamp(4rem,8vw,7rem) 0; position:relative; z-index:1; }
.sec-alt{ background:var(--paper-2); }
.sec-inner{ max-width:1280px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem); }
.sec-inner-narrow{ max-width:840px; }
.sec-eyebrow{ color:var(--accent); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.8rem; margin-bottom:.8rem; }
.sec-title{ font-size:clamp(1.7rem, 3.6vw, 2.7rem); max-width:20ch; margin-bottom:1.4rem; }
.sec-title-sm{ font-size:clamp(1.3rem,2.4vw,1.7rem); margin-bottom:1.2rem;}
.sec-lead{ font-size:1.08rem; max-width:65ch; }
.sec-lead-after{ margin-top:2.5rem; }
.sec-grid-2{ display:grid; grid-template-columns:1fr; gap:1.8rem; }
.sec-grid-2-img{ display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; }
.rounded-img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
@media (min-width:900px){
  .sec-grid-2{ grid-template-columns:1fr 1fr; }
  .sec-grid-2-img{ grid-template-columns:1fr 1fr; }
}


.cmp{ display:grid; grid-template-columns:1fr; gap:1.5rem; margin-top:1rem; }
.cmp-col{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:2rem; box-shadow:var(--shadow-sm); transition:box-shadow .35s ease, transform .35s ease;
}
.cmp-col:hover{ box-shadow:var(--shadow-md); transform:translateY(-4px); }
.cmp-col-muted{ background:transparent; border-style:dashed; }
.cmp-hd{ display:flex; align-items:center; gap:.8rem; margin-bottom:1.4rem; }
.cmp-hd i{ font-size:1.3rem; color:var(--accent); }
.cmp-hd h3{ font-size:1.25rem; }
.cmp-list li{ display:flex; align-items:flex-start; gap:.7rem; padding:.7rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.cmp-list li:last-child{ border-bottom:none; }
.cmp-list i{ margin-top:.25rem; color:var(--accent); flex-shrink:0; }
.cmp-col-muted .cmp-list i{ color:var(--ink-faint); }
@media (min-width:900px){ .cmp{ grid-template-columns:1fr 1fr; } }


.gal{ display:grid; grid-template-columns:1fr; gap:1.4rem; margin-top:2.5rem; }
.gal-item{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md);
  aspect-ratio:4/3;
}
.gal-item.lg{ aspect-ratio:16/10; }
.gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.gal-item:hover img{ transform:scale(1.06); }
.gal-cap{
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem;
  background:linear-gradient(180deg, transparent, rgba(20,17,14,.88));
  opacity:0; transform:translateY(10px); transition:all .4s ease;
}
.gal-item:hover .gal-cap{ opacity:1; transform:translateY(0); }
.gal-cap h4{ color:#fbf6ec; font-size:1.05rem; margin-bottom:.3rem; }
.gal-cap p{ color:#e6dcc7; font-size:.85rem; margin:0; }
@media (min-width:700px){ .gal{ grid-template-columns:1fr 1fr; } }
@media (min-width:1100px){ .gal{ grid-template-columns:repeat(3,1fr); } .gal-item.lg{ grid-column:span 2; } }


.grd{ display:grid; grid-template-columns:1fr; gap:1rem; margin-top:2.5rem; }
.grd-item{ border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); transition:transform .4s ease, box-shadow .4s ease; }
.grd-item:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.grd-item img{ width:100%; height:100%; object-fit:cover; }
@media (min-width:800px){
  .grd{ grid-template-columns:repeat(6,1fr); grid-auto-rows:140px; }
  .grd-a{ grid-column:span 3; grid-row:span 3; }
  .grd-b{ grid-column:span 3; grid-row:span 2; }
  .grd-c{ grid-column:span 3; grid-row:span 2; }
  .grd-d{ grid-column:span 3; grid-row:span 3; }
}


.pkg-grid{ display:grid; grid-template-columns:1fr; gap:1.6rem; margin-top:2.5rem; }
.pkg-crd{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:2.2rem; box-shadow:var(--shadow-sm); transition:transform .35s ease, box-shadow .35s ease;
}
.pkg-crd:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.pkg-crd-feat{ background:var(--ink); border-color:var(--ink); }
.pkg-crd-feat, .pkg-crd-feat h3, .pkg-crd-feat p, .pkg-crd-feat .pkg-num{ color:var(--paper); }
.pkg-crd-feat .pkg-list li{ color:#e6dcc7; border-color:rgba(245,239,227,.15); }
.pkg-crd-feat .pkg-list i{ color:var(--accent-soft); }
.pkg-hd{ margin-bottom:1.2rem; }
.pkg-num{
  display:inline-block; font-size:1.6rem; font-weight:700; color:var(--accent); margin-bottom:.5rem;
}
.pkg-hd h3{ font-size:1.35rem; }
.pkg-list{ margin-top:1.4rem; }
.pkg-list li{ display:flex; gap:.6rem; align-items:flex-start; padding:.6rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.pkg-list li:last-child{ border-bottom:none; }
.pkg-list i{ color:var(--accent); margin-top:.2rem; }
@media (min-width:900px){ .pkg-grid{ grid-template-columns:repeat(3,1fr); } .pkg-crd-feat{ transform:scale(1.04); } .pkg-crd-feat:hover{ transform:scale(1.04) translateY(-6px); } }


.crd-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; margin-top:2.5rem; }
.crd{
  background:var(--paper); border-radius:var(--radius-lg); padding:2rem;
  box-shadow:var(--shadow-sm); border:1px solid var(--line);
  transition:transform .35s ease, box-shadow .35s ease;
}
.crd:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.crd-ico{
  width:52px; height:52px; border-radius:var(--radius-md); background:var(--accent-soft);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem;
}
.crd-ico i{ font-size:1.3rem; color:var(--accent-dark); }
.crd-ttl{ font-size:1.1rem; margin-bottom:.6rem; }
.crd-txt{ font-size:.93rem; margin:0; }
@media (min-width:700px){ .crd-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1100px){ .crd-grid{ grid-template-columns:repeat(4,1fr); } }


.tag-h{ font-size:1.05rem; color:var(--ink); margin-bottom:.5rem; font-weight:600; }


.stp-wrap{ display:flex; flex-direction:column; gap:2.2rem; }
.stp{ display:flex; gap:1.6rem; align-items:flex-start; }
.stp-n{
  flex-shrink:0; width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--paper);
  display:flex; align-items:center; justify-content:center; font-weight:600; font-size:1.1rem;
}
.stp-txt h3{ font-size:1.2rem; margin-bottom:.5rem; }
.stp-txt p{ margin:0; font-size:.96rem; }


.pgh{ padding:9rem 0 3.5rem; background:var(--paper-2); border-bottom:1px solid var(--line); }
.pgh-inner{ max-width:1280px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem); }
.pgh-inner h1{ font-size:clamp(2rem,4.5vw,3.2rem); margin:1rem 0; }
.pgh-sub{ max-width:60ch; font-size:1.05rem; }
.pgh-legal{ padding-bottom:2.5rem; }


.sec-cta{ text-align:center; }
.sec-cta .sec-title{ max-width:none; margin:0 auto 1rem; }
.sec-cta .sec-lead{ margin:0 auto 2rem; }


.cnt-grid{ display:grid; grid-template-columns:1fr; gap:3rem; }
.cnt-list{ margin:1.5rem 0 2rem; }
.cnt-list li{ display:flex; gap:.9rem; align-items:flex-start; padding:.8rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.cnt-list i{ color:var(--accent); margin-top:.2rem; width:18px; }
.cnt-map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--line); }
@media (min-width:960px){ .cnt-grid{ grid-template-columns:.9fr 1.1fr; } }


.frm-wrap{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.8rem,4vw,2.8rem); box-shadow:var(--shadow-md); overflow:hidden;
}
.frm-dots{ display:flex; gap:.6rem; margin-bottom:2rem; }
.frm-dot{
  width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--paper-2); color:var(--ink-faint); font-size:.85rem; font-weight:600;
  border:1px solid var(--line); transition:all .35s ease;
}
.frm-dot.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.frm-dot.done{ background:var(--accent); color:#fff; border-color:var(--accent); }
.frm-step{ display:none; animation:slideIn .4s ease; }
.frm-step.active{ display:block; }
@keyframes slideIn{ from{ opacity:0; transform:translateX(16px);} to{ opacity:1; transform:translateX(0);} }
.frm-step-ttl{ font-size:1.2rem; margin-bottom:1.5rem; }
.frm-group{ position:relative; margin-bottom:1.6rem; }
.frm-input{
  width:100%; padding:1.1rem 1rem .5rem; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  background:var(--paper-2); font-family:inherit; font-size:1rem; color:var(--ink);
  transition:border-color .3s ease, background .3s ease;
}
.frm-input:focus{ outline:none; border-color:var(--accent); background:var(--paper); }
.frm-textarea{ resize:vertical; min-height:110px; padding-top:1.3rem; }
.frm-select{ appearance:none; cursor:pointer; }
.frm-label{
  position:absolute; left:1rem; top:1.1rem; font-size:1rem; color:var(--ink-faint);
  pointer-events:none; transition:all .25s ease; background:transparent; padding:0 .2rem;
}
.frm-input:focus + .frm-label,
.frm-input:not(:placeholder-shown) + .frm-label{
  top:-.55rem; left:.7rem; font-size:.75rem; color:var(--accent); background:var(--paper); font-weight:500;
}
.frm-select:focus + .frm-label, .frm-select:valid + .frm-label{
  top:-.55rem; left:.7rem; font-size:.75rem; color:var(--accent); background:var(--paper); font-weight:500;
}
.frm-label-tel{ z-index:5; }
.frm-check{ display:flex; align-items:flex-start; gap:.7rem; font-size:.9rem; margin-bottom:1.8rem; cursor:pointer; }
.frm-check input{ margin-top:.25rem; width:18px; height:18px; accent-color:var(--accent); flex-shrink:0; }
.frm-check a{ color:var(--accent); text-decoration:underline; }
.frm-actions{ display:flex; justify-content:space-between; align-items:center; gap:1rem; }


.tl{ position:relative; margin-top:2rem; padding-left:2.2rem; }
.tl::before{ content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--line); }
.tl-item{ position:relative; padding-bottom:2.4rem; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{
  content:''; position:absolute; left:-2.2rem; top:4px; width:16px; height:16px; border-radius:50%;
  background:var(--paper); border:3px solid var(--accent);
}
.tl-date{ display:inline-block; font-size:.8rem; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.5rem; }
.tl-body h3, .tl-body h4{ font-size:1.1rem; margin-bottom:.5rem; }
.tl-body p{ margin:0; font-size:.94rem; }
.tl-legal-long .tl-item{ padding-bottom:2.8rem; }
.tl-legal-mid .tl-item{ padding-bottom:2.2rem; }
.tl-legal-short .tl-item{ padding-bottom:1.6rem; }
.tl-legal-short{ margin-top:2.5rem; }
.tl-contact{ margin-top:2rem; }


.thk-main{
  min-height:80vh; display:flex; align-items:center; justify-content:center; padding:8rem 1.5rem 4rem;
  background:
    radial-gradient(circle at 20% 20%, rgba(168,85,43,.08), transparent 45%),
    radial-gradient(circle at 80% 80%, rgba(107,106,79,.08), transparent 45%),
    var(--paper-2);
}
.thk-card{
  background:var(--paper); border-radius:var(--radius-lg); padding:clamp(2.5rem,6vw,4rem);
  text-align:center; max-width:520px; box-shadow:var(--shadow-lg); border:1px solid var(--line);
}
.thk-ico{
  width:76px; height:76px; border-radius:50%; background:var(--accent-soft); color:var(--accent-dark);
  display:flex; align-items:center; justify-content:center; font-size:2rem; margin:0 auto 1.5rem;
}
.thk-card h1{ font-size:1.9rem; margin-bottom:1rem; }
.thk-card p{ margin-bottom:2rem; }


.ftr{ background:var(--ink); color:#d9cfbf; padding:4.5rem 0 2.5rem; }
.ftr-inner{ max-width:1000px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem); display:flex; flex-direction:column; align-items:center; text-align:center; gap:2.2rem; }
.ftr-brand{ display:flex; align-items:center; gap:.6rem; font-size:1.2rem; font-weight:600; color:#fbf6ec; }
.ftr-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem; font-size:.92rem; }
.ftr-links a{ transition:color .3s ease; }
.ftr-links a:hover{ color:var(--accent-soft); }
.ftr-contact{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.8rem; font-size:.88rem; color:#b8ac97; }
.ftr-contact p{ display:flex; align-items:center; gap:.5rem; margin:0; }
.ftr-bottom{ border-top:1px solid rgba(217,207,191,.15); padding-top:2rem; width:100%; display:flex; flex-direction:column; gap:.8rem; align-items:center; font-size:.82rem; color:#9a8f7b; }
.ftr-legal{ display:flex; gap:1.4rem; }
.ftr-legal a:hover{ color:var(--accent-soft); }


.cke{
  position:fixed; bottom:1.4rem; left:50%; transform:translateX(-50%);
  z-index:300; background:var(--ink); color:#e9dfcb; border-radius:var(--radius-pill);
  padding:.9rem 1rem .9rem 1.5rem; display:flex; align-items:center; gap:1rem; max-width:92vw;
  box-shadow:var(--shadow-lg); transition:opacity .4s ease, transform .4s ease;
  flex-wrap:wrap; justify-content:center;
}
.cke.hidden{ opacity:0; transform:translateX(-50%) translateY(30px); pointer-events:none; }
.cke p{ margin:0; font-size:.82rem; max-width:340px; }
.cke p a{ color:var(--accent-soft); text-decoration:underline; }
.cke-actions{ display:flex; gap:.6rem; flex-shrink:0; }
.cke-btn{ padding:.55rem 1.1rem; border-radius:var(--radius-pill); font-size:.82rem; font-weight:500; transition:all .3s ease; }
.cke-btn-ghost{ background:transparent; color:#e9dfcb; border:1px solid rgba(233,223,203,.35); }
.cke-btn-ghost:hover{ background:rgba(233,223,203,.1); }
.cke-btn-pri{ background:var(--accent); color:#fff; }
.cke-btn-pri:hover{ background:var(--accent-dark); }

.cke-modal{
  position:fixed; bottom:1.4rem; left:50%; transform:translateX(-50%) scale(.9); z-index:301;
  width:min(94vw,480px); background:var(--paper); border-radius:var(--radius-lg); padding:2rem;
  box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transition:all .4s cubic-bezier(.4,0,.2,1);
  border:1px solid var(--line);
}
.cke-modal.active{ opacity:1; visibility:visible; transform:translateX(-50%) scale(1); bottom:2rem; }
.cke-modal-inner h3{ font-size:1.25rem; margin-bottom:.8rem; }
.cke-modal-inner > p{ font-size:.88rem; margin-bottom:1.4rem; }
.cke-cat{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--line); }
.cke-cat div strong{ font-size:.92rem; color:var(--ink); }
.cke-cat div p{ font-size:.8rem; margin:.2rem 0 0; }
.cke-switch{ position:relative; width:44px; height:26px; flex-shrink:0; }
.cke-switch input{ opacity:0; width:0; height:0; }
.cke-switch span{ position:absolute; inset:0; background:var(--line); border-radius:var(--radius-pill); transition:.3s; }
.cke-switch span::before{ content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.3s; box-shadow:var(--shadow-sm); }
.cke-switch input:checked + span{ background:var(--accent); }
.cke-switch input:checked + span::before{ transform:translateX(18px); }
.cke-switch input:disabled + span{ opacity:.6; }
.cke-modal-actions{ display:flex; justify-content:flex-end; gap:.8rem; margin-top:1.5rem; flex-wrap:wrap; }


a, button, input, textarea, select{ transition:all .3s ease; }


@media (max-width:640px){
  .hero{ padding-top:8rem; align-items:flex-end; min-height:100vh; }
  .frm-actions{ flex-direction:row; }
}