:root{
  --ink:#1B2A2E; --ink-soft:#3A4540; --muted:#7C877F; --muted-2:#8A9490; --faint:#9AA39D;
  --paper:#F7F4EC; --card:#FFFFFF; --card-soft:#FDFCF9;
  --sage:#5B7F6B; --sage-dark:#3F5C4C; --sage-tint:#EAF0EB;
  --clay:#B8632E; --clay-dark:#9A5225; --clay-tint:#FBEEE4;
  --line:#E1DBCA; --line-soft:#EDE8DA; --white:#FFFFFF; --red:#A23B2E;
  --amber:#9A7B2E; --amber-bg:#FBF1E8;
  --radius-sm:8px; --radius-md:12px; --radius-lg:20px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(27,42,46,.05);
  --shadow-sm:0 2px 8px rgba(27,42,46,.06);
  --shadow-md:0 12px 28px -10px rgba(27,42,46,.18), 0 2px 6px rgba(27,42,46,.05);
  --ring:0 0 0 3px rgba(91,127,107,.20);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3,.serif{font-family:'Lora',serif;font-weight:600;margin:0;}
.mono{font-family:'JetBrains Mono',monospace;}
.wrap{max-width:1180px;margin:0 auto;padding:36px 20px 90px;}
a{color:inherit;}
::selection{background:var(--sage-tint);color:var(--sage-dark);}

/* Public site nav */
.site-subnav{display:flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px;width:fit-content;margin-bottom:28px;box-shadow:var(--shadow-xs);}
.site-subnav a{border:none;background:transparent;font-weight:600;font-size:0.85rem;padding:9px 18px;border-radius:var(--radius-pill);cursor:pointer;color:var(--muted);text-decoration:none;transition:background .15s ease,color .15s ease;}
.site-subnav a:hover{color:var(--sage-dark);}
.site-subnav a.active{background:var(--sage-dark);color:var(--white);box-shadow:var(--shadow-xs);}

.doc-header{display:flex;gap:22px;align-items:center;margin-bottom:22px;flex-wrap:wrap;}
.doc-photo{width:112px;height:112px;border-radius:50%;background:linear-gradient(135deg,var(--sage),var(--sage-dark)) center/cover no-repeat;flex-shrink:0;box-shadow:0 0 0 5px var(--card),0 0 0 6px var(--line),var(--shadow-sm);}
.wrap h1{font-size:1.9rem;letter-spacing:-0.01em;color:var(--ink);font-family:'Lora',serif;font-weight:700;margin:0 0 4px;}
.doc-role{color:var(--sage-dark);font-weight:600;font-size:1.02rem;margin-top:4px;}
.doc-meta{font-size:0.85rem;color:var(--muted);margin-top:6px;}

.wrap section{margin-top:34px;}
.wrap h2{font-size:1.15rem;font-family:'Lora',serif;font-weight:700;color:var(--ink);margin:0 0 16px;padding-bottom:0;border-bottom:none;position:relative;padding-left:14px;}
.wrap h2::before{content:'';position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:4px;background:linear-gradient(var(--sage),var(--clay));}
.site-section-title{font-size:0.76rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted-2);margin:30px 0 14px;border-bottom:1px solid var(--line);padding-bottom:9px;}
.doc-intro{font-size:1.02rem;color:var(--ink-soft);max-width:660px;line-height:1.7;}

.trust-block{margin-top:40px;padding:20px 22px;border-top:none;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card-soft);font-size:0.83rem;color:var(--muted);line-height:1.6;}
.trust-contacts{color:var(--ink);font-weight:600;margin-bottom:6px;}
.trust-contacts a{color:var(--sage-dark);}
.trust-checked{color:var(--sage-dark);font-weight:500;}
.trust-disclaimer{margin-top:6px;font-style:italic;}
.site-list-plain{margin:0;padding-left:18px;font-size:0.92rem;color:var(--ink-soft);}
.site-list-plain li{margin-bottom:6px;}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.mini-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 18px;background:var(--card);cursor:pointer;display:block;text-decoration:none;color:inherit;box-shadow:var(--shadow-xs);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.mini-card:hover{border-color:var(--sage);box-shadow:var(--shadow-md);transform:translateY(-2px);}
.mini-card-title{font-size:0.94rem;font-weight:600;color:var(--ink);margin-bottom:5px;}
.mini-card-sub{font-size:0.79rem;color:var(--muted-2);line-height:1.4;}
.mini-card-price{margin-top:10px;font-size:0.85rem;color:var(--clay-dark);font-weight:700;}

.review-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow-xs);}
.review-top{display:flex;justify-content:space-between;font-size:0.86rem;color:var(--ink);font-weight:700;gap:10px;}
.review-author{font-weight:700;}
.review-stars{color:var(--clay);font-size:0.82rem;letter-spacing:1px;}
.review-text{font-size:0.9rem;color:var(--ink-soft);margin-top:7px;white-space:pre-line;line-height:1.6;}
.review-verified{font-size:0.73rem;color:var(--sage-dark);font-weight:600;}
.review-foot{font-size:0.73rem;color:var(--faint);margin-top:9px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.review-src{font-size:0.73rem;color:var(--muted-2);text-decoration:none;border-bottom:1px dotted var(--line);}
.review-reply{margin-top:10px;padding:10px 13px;background:var(--sage-tint);border-radius:var(--radius-sm);font-size:0.83rem;color:var(--ink-soft);}
.rating-summary{display:flex;align-items:center;gap:11px;margin-bottom:16px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);width:fit-content;}
.rating-value{font-size:1.6rem;font-weight:700;color:var(--ink);font-family:'Lora',serif;}
.rating-count{font-size:0.8rem;color:var(--muted-2);}
.review-list{margin-bottom:22px;}
.review-form{margin-top:18px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm);}
.review-form-title{font-weight:700;font-family:'Lora',serif;font-size:1.05rem;color:var(--ink);margin-bottom:5px;}
.review-form-hint{font-size:0.79rem;color:var(--muted-2);margin-bottom:14px;line-height:1.5;}
.review-form .field{margin-bottom:12px;}
.review-form label{display:block;font-size:0.82rem;color:var(--ink-soft);font-weight:500;}
.review-form input,.review-form select,.review-form textarea{width:100%;margin-top:5px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;font-size:0.9rem;background:var(--card-soft);transition:border-color .15s ease,box-shadow .15s ease;}
.review-form input:focus,.review-form select:focus,.review-form textarea:focus{outline:none;border-color:var(--sage);box-shadow:var(--ring);background:var(--white);}
.review-form button[type=submit]{margin-top:8px;padding:11px 22px;border:0;border-radius:var(--radius-pill);background:var(--sage-dark);color:#fff;font:inherit;font-weight:700;font-size:0.9rem;cursor:pointer;box-shadow:var(--shadow-xs);transition:transform .12s ease,box-shadow .12s ease,background .15s ease;}
.review-form button[type=submit]:hover{background:var(--ink);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.review-form-status{margin-top:12px;font-size:0.84rem;font-weight:500;}
.review-form-status.ok{color:var(--sage-dark);}
.review-form-status.err{color:var(--red);}
.review-form .fine{color:var(--faint);font-weight:400;}

.back-link{font-size:0.83rem;color:var(--sage-dark);cursor:pointer;font-weight:600;margin-bottom:18px;display:inline-flex;align-items:center;gap:4px;text-decoration:none;}
.back-link:hover{color:var(--ink);}
.empty-note{font-size:0.86rem;color:var(--faint);padding:22px 0;}

/* --- service (article) page --- */
.article-meta{font-size:0.79rem;color:var(--muted-2);margin:8px 0 16px;line-height:1.7;}
.wrap h3{font-size:1rem;font-family:'Lora',serif;font-weight:700;margin:18px 0 8px;color:var(--ink);}
/* :where() keeps these at the same specificity as a plain utility class
   (e.g. .price-big, .fine, .booking-hint) so a component's own color always
   wins over this generic prose default, instead of silently overriding it
   the way a bare ".wrap p" element selector would. */
.wrap :where(p){font-size:1rem;color:var(--ink-soft);line-height:1.72;}
.wrap :where(section li){font-size:1rem;color:var(--ink-soft);line-height:1.62;}

.toc{background:var(--card-soft);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px 22px;margin:22px 0;}
.toc-title{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted-2);margin-bottom:10px;}
.toc ol{margin:0;padding-left:20px;font-size:0.89rem;}
.toc li{margin:5px 0;}
.toc a{color:var(--sage-dark);text-decoration:none;font-weight:500;}
.toc a:hover{text-decoration:underline;}

blockquote.disclaimer{border-left:3px solid var(--amber);background:var(--amber-bg);margin:16px 0;padding:12px 16px;font-size:0.86rem;color:#6B4A28;border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.55;}

.split{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:600px){.split{grid-template-columns:1fr;}}

.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:0.86rem;margin:10px 0;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;}
.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top;}
.data-table tr:last-child td{border-bottom:none;}
.data-table th{background:var(--sage-tint);font-weight:700;color:var(--sage-dark);}

.cert-list{list-style:none;padding:0;margin:10px 0;}
.cert-list li{border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 15px;margin-bottom:9px;background:var(--card);font-size:0.86rem;box-shadow:var(--shadow-xs);}
.cert-list strong{display:block;margin-bottom:3px;color:var(--ink);}

.faq-item{border-bottom:1px solid var(--line);padding:13px 0;}
.faq-item summary{cursor:pointer;font-weight:600;font-size:0.95rem;color:var(--ink);}
.faq-item summary:hover{color:var(--sage-dark);}
.faq-item div{font-size:0.92rem;color:var(--ink-soft);margin-top:9px;line-height:1.62;}

.glossary dt{font-weight:700;color:var(--ink);font-size:0.92rem;margin-top:12px;}
.glossary dd{margin:3px 0 0;font-size:0.89rem;color:var(--ink-soft);}

.sources{font-size:0.86rem;color:var(--ink-soft);padding-left:22px;}
.sources li{margin:5px 0;}
sup.ref a{color:var(--clay);text-decoration:none;font-weight:700;}

.price-big{font-size:1.5rem;font-weight:700;color:var(--clay-dark);font-family:'Lora',serif;}
.fine{font-size:0.79rem;color:var(--faint);}

.person-card{display:flex;gap:15px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:10px;background:var(--card);box-shadow:var(--shadow-xs);}
.person-photo{width:58px;height:58px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--sage),var(--sage-dark)) center/cover no-repeat;}
.person-role{font-size:0.72rem;color:var(--muted-2);font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
.person-name{font-weight:700;color:var(--ink);text-decoration:none;font-size:0.97rem;}
.person-name:hover{color:var(--sage-dark);}
.person-meta{font-size:0.81rem;color:var(--muted-2);margin-top:2px;}

.hero{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-bottom:10px;padding:28px;background:linear-gradient(135deg,var(--sage-tint),var(--card) 60%);border:1px solid var(--line);border-radius:var(--radius-lg);}
.hero-left{flex:1 1 320px;margin-bottom:0;}
.hero-booking{flex:1 1 320px;max-width:400px;}
.hero-booking .booking{margin:0;}

.booking{border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px 24px;margin:20px 0;background:var(--card);box-shadow:var(--shadow-sm);}
.booking-phone{margin-top:10px;font-size:1.05rem;font-weight:700;}
.booking-phone a{color:var(--ink);text-decoration:none;}
.booking-phone a:hover{color:var(--sage-dark);}
.booking-title{font-family:'Lora',serif;font-weight:700;font-size:1.12rem;margin-bottom:5px;}
.booking-hint{font-size:0.81rem;color:var(--muted);margin:0 0 14px;line-height:1.5;}
.booking-row{display:flex;gap:9px;flex-wrap:wrap;}
.booking-row input{flex:1;min-width:180px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:0.97rem;background:var(--card-soft);transition:border-color .15s ease,box-shadow .15s ease;}
.booking-row input:focus{outline:none;border-color:var(--sage);box-shadow:var(--ring);background:var(--white);}
.booking-row button{background:var(--clay);color:var(--white);border:none;border-radius:var(--radius-sm);padding:12px 26px;font-weight:700;font-size:0.95rem;cursor:pointer;box-shadow:var(--shadow-xs);transition:transform .12s ease,box-shadow .12s ease,background .15s ease;}
.booking-row button:hover{background:var(--clay-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.booking-row button:disabled{opacity:0.6;cursor:default;transform:none;}
.booking-msgs{margin-top:12px;font-size:0.83rem;color:var(--muted);}
.booking-msgs .msg{display:inline-block;padding:4px 10px;margin-left:4px;border:1px solid var(--line);border-radius:var(--radius-pill);text-decoration:none;color:var(--sage-dark);font-weight:700;font-size:0.76rem;background:var(--card-soft);transition:background .15s ease,border-color .15s ease;}
.booking-msgs .msg:hover{background:var(--sage-tint);border-color:var(--sage);}
.booking-status{margin-top:12px;font-size:0.86rem;font-weight:500;}
.booking-status.ok{color:var(--sage-dark);}
.booking-status.err{color:var(--red);}

.share{margin:26px 0;font-size:0.86rem;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.share a{color:var(--sage-dark);text-decoration:none;border:1px solid var(--line);border-radius:var(--radius-pill);padding:5px 13px;background:var(--card);font-weight:500;transition:background .15s ease,border-color .15s ease;}
.share a:hover{background:var(--sage-tint);border-color:var(--sage);}
.share-count{color:var(--faint);}

details.schema-details{margin-top:20px;}
details.schema-details summary{font-size:0.81rem;color:var(--sage-dark);cursor:pointer;padding:10px 0;font-weight:500;}
pre{background:var(--ink);color:#D9E4DE;font-size:0.71rem;padding:16px;border-radius:var(--radius-md);overflow-x:auto;margin-top:8px;max-height:340px;white-space:pre-wrap;word-break:break-word;}

/* Admin */
.app-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.app-top-title{font-family:'Lora',serif;font-weight:700;font-size:1.2rem;}
.app-top-sub{font-size:0.81rem;color:var(--muted);margin-top:3px;}

.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:16px;}
.admin-tab{border:1px solid var(--line);background:var(--card);font-size:0.83rem;font-weight:600;padding:9px 16px;border-radius:var(--radius-pill);cursor:pointer;color:var(--ink-soft);transition:all .15s ease;}
.admin-tab:hover{border-color:var(--sage);color:var(--sage-dark);}
.admin-tab.active{background:var(--ink);color:var(--white);border-color:var(--ink);}

.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 30px;box-shadow:var(--shadow-xs);}
.panel-title{font-size:1.15rem;margin-bottom:8px;}
.panel-sub{font-size:0.86rem;color:var(--muted);margin-bottom:22px;max-width:680px;line-height:1.55;}

.row{display:flex;gap:14px;flex-wrap:wrap;}
.field{flex:1;min-width:180px;margin-bottom:16px;}
.field label{display:block;font-size:0.82rem;color:var(--ink-soft);font-weight:500;margin-bottom:6px;}
input[type=text],input[type=number],input[type=url],input[type=password],input[type=date],input[type=tel],textarea,select{
  width:100%;font-family:'Inter';font-size:0.9rem;padding:10px 12px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--card-soft);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
textarea{resize:vertical;min-height:58px;}
input:focus,textarea:focus,select:focus{outline:none;box-shadow:var(--ring);border-color:var(--sage);background:var(--white);}

.btn{border:none;font-family:'Inter';font-weight:700;font-size:0.86rem;padding:11px 20px;border-radius:var(--radius-pill);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .15s ease,border-color .15s ease,opacity .15s ease;}
.btn-primary{background:var(--clay);color:var(--white);box-shadow:var(--shadow-xs);}
.btn-primary:hover{background:var(--clay-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.btn-primary:disabled{background:#CBB9AC;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage-dark);}
.btn-sm{padding:7px 14px;font-size:0.78rem;}

/* AI actions (search / generation) — visually distinct from regular buttons
   so it's obvious which controls call out to a neural network. */
.btn-ai{
  display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,#0088ff,#7A5CFA);
  color:#fff;
  box-shadow:0 4px 14px rgba(0,136,255,0.35);
}
.btn-ai svg{flex-shrink:0;filter:drop-shadow(0 0 3px rgba(255,255,255,0.6));}
.btn-ai:hover{filter:brightness(1.08);box-shadow:0 6px 20px rgba(0,136,255,0.45);transform:translateY(-1px);}
.btn-ai:active{transform:translateY(0);}
.btn-ai:disabled{background:linear-gradient(135deg,#9CC3E8,#B8AEEA);box-shadow:none;cursor:not-allowed;transform:none;filter:none;}
.btn-danger{background:transparent;border:1px solid #E3ABA0;color:var(--red);}
.btn-danger:hover{background:#FBEAE7;}

.fact-row{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius-md);padding:13px 15px;margin-bottom:10px;background:var(--card);box-shadow:var(--shadow-xs);}
.fact-main{flex:1;}
.fact-cat{font-size:0.72rem;color:var(--sage-dark);font-weight:700;margin-bottom:3px;text-transform:uppercase;letter-spacing:.02em;}
.fact-val{font-size:0.9rem;color:var(--ink);}
.fact-val input{margin-top:4px;}
.fact-actions{display:flex;gap:6px;flex-shrink:0;align-items:center;}
.photo-preview{width:92px;height:92px;border-radius:var(--radius-md);flex-shrink:0;background:var(--sage-tint);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.photo-preview img{width:100%;height:100%;object-fit:cover;}
.photo-preview span{font-size:0.7rem;color:var(--faint);}
.status-pill{font-size:0.68rem;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill);white-space:nowrap;}
.status-unverified{background:var(--amber-bg);color:var(--amber);}
.status-confirmed{background:var(--sage-tint);color:var(--sage-dark);}
.status-rejected{background:#FBEAE7;color:var(--red);}

.list-item{border:1px solid var(--line);border-radius:var(--radius-md);padding:15px 17px;margin-bottom:10px;background:var(--card);box-shadow:var(--shadow-xs);}
.list-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.list-item-title{font-weight:700;font-size:0.93rem;}
.list-item-sub{font-size:0.81rem;color:var(--muted-2);margin-top:4px;line-height:1.4;}

.rv-toggle{display:flex;gap:8px;align-items:center;font-size:0.85rem;margin:14px 0;}
.rv-toggle input{width:auto;}
.rv-item .rv-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dotted var(--line);}
.rv-inline-check{display:inline-flex;gap:6px;align-items:center;font-size:0.78rem;color:var(--ink-soft);}
.rv-inline-check input{width:auto;}
.rv-stars{color:var(--clay);}
.rv-meta{font-size:0.74rem;color:var(--faint);margin-top:6px;}
.rv-comment{white-space:pre-line;}
.rv-rejected{margin:16px 0;font-size:0.85rem;}
.rv-rejected summary{cursor:pointer;color:var(--muted-2);}
.rv-warn{background:var(--amber-bg);border:1px solid #E3C9A8;border-radius:var(--radius-sm);padding:11px 13px;font-size:0.8rem;color:#6B4A28;margin:11px 0;}
.rv-raw{margin-top:14px;font-size:0.8rem;}
.rv-raw summary{cursor:pointer;color:var(--muted-2);}
.rv-raw pre{white-space:pre-wrap;background:var(--card-soft);color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px;font-size:0.76rem;max-height:320px;overflow:auto;}

.loading-row{display:flex;align-items:center;gap:10px;color:var(--muted-2);font-size:0.85rem;padding:10px 0;}
.spinner{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--sage);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.verify-banner{margin-top:16px;display:flex;gap:10px;background:var(--amber-bg);border:1px solid #E3C9A8;border-radius:var(--radius-md);padding:13px 15px;font-size:0.82rem;color:#6B4A28;}
.error-banner{margin-top:16px;background:#FBEAE7;border:1px solid #E3ABA0;border-radius:var(--radius-md);padding:13px 15px;font-size:0.82rem;color:var(--red);}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--white);padding:11px 22px;border-radius:var(--radius-pill);font-size:0.85rem;opacity:0;pointer-events:none;transition:opacity 0.25s ease,transform .25s ease;z-index:50;box-shadow:var(--shadow-md);}
.toast.show{opacity:1;transform:translate(-50%,-4px);}

/* Preview iframe (admin) */
.device-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.device-toggle{display:flex;gap:4px;}
.device-toggle button{border:1px solid var(--line);background:var(--card);font-size:0.78rem;padding:7px 14px;border-radius:var(--radius-pill);cursor:pointer;color:var(--muted);transition:all .15s ease;}
.device-toggle button.active{background:var(--clay);color:var(--white);border-color:var(--clay);}
.preview-frame-wrap{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--white);margin:0 auto;transition:max-width 0.2s ease;max-width:1100px;box-shadow:var(--shadow-sm);}
.preview-frame-wrap iframe{width:100%;height:640px;border:none;display:block;}
.preview-link{font-size:0.82rem;color:var(--sage-dark);font-weight:500;}

/* Login gate */
.login-box{max-width:380px;margin:100px auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:34px 32px;box-shadow:var(--shadow-md);}
.login-box h1{font-size:1.2rem;margin-bottom:18px;}

@media (max-width:700px){
  .row{flex-direction:column;}
  .doc-header{flex-direction:column;text-align:center;}
  .fact-row{flex-direction:column;}
  .hero{padding:22px;}
  .wrap h1{font-size:1.6rem;}
}
@media (max-width:520px){
  .wrap{padding:22px 14px 70px;}
  .panel{padding:20px 18px;}
}

/* --- platform marketing landing (apex domain only) --- */
.landing-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.landing-logo{font-family:'Lora',serif;font-weight:700;font-size:1.15rem;color:var(--ink);}

.landing-hero{padding:56px 20px 48px;text-align:center;max-width:760px;margin:0 auto;}
.landing-hero h1{font-family:'Lora',serif;font-weight:700;font-size:2.1rem;line-height:1.25;color:var(--ink);letter-spacing:-0.01em;}
.landing-hero-sub{font-size:1.02rem;color:var(--ink-soft);line-height:1.65;margin:18px auto 0;max-width:620px;}
.landing-hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px;}
.landing-hero-cta .btn{padding:13px 26px;font-size:0.92rem;}

.landing-steps{margin-top:20px;padding:44px 20px;background:var(--card-soft);border-radius:var(--radius-lg);text-align:center;}
.landing-steps h2,.landing-features h2{font-family:'Lora',serif;font-weight:700;font-size:1.5rem;color:var(--ink);text-align:center;margin-bottom:32px;}
.landing-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;max-width:940px;margin:0 auto;text-align:left;}
.landing-step-n{width:34px;height:34px;border-radius:50%;background:var(--sage-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Lora',serif;font-weight:700;margin-bottom:12px;}
.landing-step-title{font-weight:700;color:var(--ink);margin-bottom:6px;}
.landing-step p{font-size:0.88rem;color:var(--muted);line-height:1.55;margin:0;}

.landing-features{margin-top:56px;}
.landing-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
.landing-feature{border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 20px;background:var(--card);box-shadow:var(--shadow-xs);}
.landing-feature-icon{font-size:1.6rem;margin-bottom:10px;}
.landing-feature-title{font-weight:700;color:var(--ink);margin-bottom:6px;}
.landing-feature p{font-size:0.87rem;color:var(--muted);line-height:1.55;margin:0;}

.landing-cta-band{margin-top:60px;padding:48px 20px;text-align:center;background:linear-gradient(135deg,var(--sage-tint),var(--card));border-radius:var(--radius-lg);border:1px solid var(--line);}
.landing-cta-band h2{font-family:'Lora',serif;font-weight:700;font-size:1.5rem;color:var(--ink);margin-bottom:8px;}
.landing-cta-band p{color:var(--muted);margin-bottom:22px;}

.landing-foot{margin-top:40px;padding:24px 0 6px;text-align:center;font-size:0.78rem;color:var(--faint);}

@media (max-width:640px){
  .landing-hero{padding:36px 12px 32px;}
  .landing-hero h1{font-size:1.6rem;}
}
