:root{
  --ivory:#fbf8f2;
  --ivory-2:#f5efe4;
  --card:#ffffff;
  --ink:#191713;
  --ink-2:#4b463d;
  --ink-3:#8b8377;
  --line:#ece3d4;
  --gold:#d98b1f;
  --gold-dark:#b56c0c;
  --gold-deep:#7d4a06;
  --gold-soft:#fbeed8;
  --it-green:#008c45;
  --it-red:#cd212a;
  --it-white:#f7f7f2;
  --grad:linear-gradient(135deg,#d98b1f 0%,#f0ad42 100%);
  --shadow:0 10px 30px -14px rgba(185,108,12,.28);
  --shadow-lg:0 18px 44px -18px rgba(125,74,6,.32);
  --r-lg:22px;
  --r:16px;
  --r-sm:12px;
  --max:1180px;
  --font:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font);
  font-size:15px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-deep);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.32;letter-spacing:.2px;color:var(--ink)}
h1{font-size:26px}
h2{font-size:22px}
h3{font-size:17px}
p{margin:0 0 1em}
ul{margin:0 0 1em;padding-left:1.2em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 18px}
.section{padding:44px 0}
.section-tight{padding:28px 0}
.sec-head{margin-bottom:22px}
.sec-head .eyebrow{
  display:inline-block;font-size:12px;letter-spacing:2px;color:var(--gold-dark);
  background:var(--gold-soft);border-radius:999px;padding:4px 12px;margin-bottom:10px;
}
.sec-head h2{margin-bottom:6px}
.sec-head p{color:var(--ink-2);margin:0;font-size:14px}
.center{text-align:center}

/* ---------- 意大利三色条 ---------- */
.tricolor{height:3px;display:flex}
.tricolor i{flex:1}
.tricolor i:nth-child(1){background:var(--it-green)}
.tricolor i:nth-child(2){background:var(--it-white)}
.tricolor i:nth-child(3){background:var(--it-red)}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:40;
  background:rgba(251,248,242,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.hdr-in{display:flex;align-items:center;gap:12px;height:60px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;color:var(--ink);font-size:15px;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand .mark{
  width:30px;height:30px;border-radius:9px;background:var(--grad);
  display:grid;place-items:center;font-size:15px;box-shadow:var(--shadow);flex:none;
}
.brand .sub{display:block;font-size:11px;font-weight:500;color:var(--ink-3);letter-spacing:.5px}
.nav{margin-left:auto;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{
  color:var(--ink-2);font-size:13.5px;padding:7px 10px;border-radius:999px;white-space:nowrap;
}
.nav a:hover{background:var(--gold-soft);color:var(--gold-deep);text-decoration:none}
.nav a.on{background:var(--gold-soft);color:var(--gold-deep);font-weight:600}
.nav-cta{
  display:none;margin-left:8px;background:var(--grad);color:#fff;padding:8px 14px;
  border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow);white-space:nowrap;
}
.nav-cta:hover{color:#fff;text-decoration:none}
@media(min-width:1000px){.nav-cta{display:inline-block}}

/* ---------- hero ---------- */
.hero{padding:38px 0 30px}
.hero-in{display:grid;gap:26px;grid-template-columns:1fr}
@media(min-width:900px){
  .hero-in{grid-template-columns:1.05fr .95fr;align-items:center;gap:40px}
  .hero-media{order:2}
}
.hero-tag{
  display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--gold-deep);
  background:var(--gold-soft);border:1px solid #f3e0bd;border-radius:999px;padding:5px 13px;margin-bottom:14px;
}
.hero-tag .flag{display:inline-flex;gap:2px}
.hero-tag .flag i{width:9px;height:9px;border-radius:2px;display:block}
.hero h1{font-size:30px;margin-bottom:14px}
@media(min-width:700px){.hero h1{font-size:40px}}
.hero-sub{color:var(--ink-2);font-size:15px;max-width:60ch;margin-bottom:18px}
.langs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.langs span{
  font-size:13px;background:var(--card);border:1px solid var(--line);border-radius:999px;
  padding:6px 13px;color:var(--ink);box-shadow:0 2px 8px -4px rgba(0,0,0,.08);
}
.langs span b{color:var(--gold-dark)}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{
  display:inline-block;padding:12px 22px;border-radius:999px;font-size:14.5px;font-weight:600;
  background:var(--grad);color:#fff;box-shadow:var(--shadow);border:none;cursor:pointer;
}
.btn:hover{color:#fff;text-decoration:none;transform:translateY(-1px)}
.btn-ghost{
  background:var(--card);color:var(--gold-deep);border:1px solid #ecd9b6;box-shadow:none;
}
.btn-ghost:hover{color:var(--gold-deep);background:var(--gold-soft)}
.hero-media{position:relative}
.hero-media img{
  width:100%;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  aspect-ratio:4/5;object-fit:cover;object-position:center top;
}
@media(min-width:900px){.hero-media img{aspect-ratio:4/4.6}}
.hero-badge{
  position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.95);
  border-radius:var(--r-sm);padding:9px 14px;box-shadow:var(--shadow);font-size:12.5px;color:var(--ink-2);
}
.hero-badge b{color:var(--ink);font-size:14px}

/* ---------- stats ---------- */
.stats{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:22px 8px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;
}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr);padding:26px 10px}}
.stat{text-align:center;padding:8px 6px}
.stat .n{font-size:26px;font-weight:800;color:var(--gold-deep);line-height:1.2}
.stat .n small{font-size:13px;font-weight:600;margin-left:2px}
@media(min-width:760px){.stat .n{font-size:32px}}
.stat .l{font-size:13px;color:var(--ink);font-weight:600;margin-top:2px}
.stat .note{font-size:11.5px;color:var(--ink-3);margin-top:3px}

/* ---------- cards ---------- */
.grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:620px){.grid-2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.grid-3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.grid-4{grid-template-columns:repeat(4,1fr)}}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:20px;box-shadow:0 4px 16px -12px rgba(0,0,0,.12);
  transition:transform .22s ease,box-shadow .22s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card .ico{
  width:40px;height:40px;border-radius:12px;background:var(--gold-soft);display:grid;
  place-items:center;font-size:19px;margin-bottom:12px;
}
.card h3{margin-bottom:6px}
.card p{color:var(--ink-2);font-size:14px;margin:0}
.topbar{height:3px;border-radius:3px 3px 0 0;background:var(--grad);margin:-20px -20px 14px}

/* ---------- pillars ---------- */
.pillar{border-left:3px solid var(--gold);padding-left:16px}
.pillar h3{margin-bottom:6px}
.pillar p{color:var(--ink-2);font-size:14px;margin:0}

/* ---------- case card ---------- */
.case{overflow:hidden;padding:0;display:flex;flex-direction:column}
.case .thumb{position:relative;background:var(--ivory-2);overflow:hidden}
.case .thumb img{width:100%;aspect-ratio:16/10;object-fit:cover}
.case .type{
  position:absolute;left:10px;top:10px;background:rgba(255,255,255,.94);color:var(--gold-deep);
  font-size:11.5px;font-weight:600;border-radius:999px;padding:3px 10px;
}
.case .body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.case h3{font-size:16px;margin-bottom:6px}
.case .meta{font-size:12px;color:var(--ink-3);margin-bottom:8px}
.case p{font-size:13.5px;color:var(--ink-2);margin:0 0 12px}
.case .more{margin-top:auto;font-size:13px;font-weight:600}

/* ---------- news card ---------- */
.news-item{display:grid;grid-template-columns:1fr;gap:0;overflow:hidden}
@media(min-width:620px){.news-item{grid-template-columns:150px 1fr}}
.news-item .thumb img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover}
@media(min-width:620px){.news-item .thumb img{aspect-ratio:auto;min-height:100%}}
.news-item .body{padding:16px 18px}
.news-item .date{font-size:12px;color:var(--ink-3);margin-bottom:4px}
.news-item h3{font-size:16px;margin-bottom:6px}
.news-item p{font-size:13.5px;color:var(--ink-2);margin:0 0 10px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:11.5px;background:var(--ivory-2);color:var(--ink-2);border-radius:999px;padding:2px 9px}

/* ---------- credentials ---------- */
.cred-group{margin-bottom:26px}
.cred-group h3{font-size:16px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.cred-group h3::before{content:"";width:14px;height:3px;border-radius:2px;background:var(--grad)}
.cred-list{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:760px){.cred-list{grid-template-columns:repeat(2,1fr)}}
.cred{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px;
  display:flex;gap:12px;align-items:flex-start;transition:transform .2s ease,box-shadow .2s ease;
}
.cred:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.cred .yr{
  flex:none;font-size:12px;font-weight:700;color:var(--gold-deep);background:var(--gold-soft);
  border-radius:8px;padding:4px 8px;min-width:58px;text-align:center;
}
.cred .t{font-size:14.5px;font-weight:600;line-height:1.5}
.cred .o{font-size:12.5px;color:var(--ink-3)}
.media-logo{
  display:inline-block;background:var(--ivory-2);border:1px solid var(--line);border-radius:999px;
  padding:6px 14px;font-size:13px;color:var(--ink-2);margin:0 8px 8px 0;
}

/* ---------- faq ---------- */
.faq{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:10px;overflow:hidden}
.faq summary{
  cursor:pointer;padding:15px 18px;font-weight:600;font-size:14.5px;list-style:none;
  display:flex;justify-content:space-between;gap:12px;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";color:var(--gold-dark);font-size:16px;flex:none}
.faq[open] summary::after{content:"－"}
.faq .a{padding:0 18px 16px;color:var(--ink-2);font-size:14px;border-top:1px solid var(--line);padding-top:12px}

/* ---------- article ---------- */
.article{max-width:760px;margin:0 auto}
.article .kicker{font-size:12.5px;color:var(--ink-3);margin-bottom:8px}
.article h1{font-size:25px;margin-bottom:10px}
@media(min-width:700px){.article h1{font-size:31px}}
.article .lede{font-size:15.5px;color:var(--ink-2);background:var(--gold-soft);border-radius:var(--r-sm);padding:14px 16px}
.article h2{font-size:19px;margin-top:26px;padding-left:11px;border-left:3px solid var(--gold)}
.article figure{margin:20px 0}
.article figure img{border-radius:var(--r-sm);width:100%}
.article figcaption{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.article .quote{
  border-left:3px solid var(--gold);padding:4px 0 4px 14px;color:var(--ink-2);
  font-style:normal;margin:18px 0;
}
.src-box{
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--it-green);
  border-radius:var(--r-sm);padding:12px 14px;font-size:13px;color:var(--ink-2);margin:14px 0;
}
.src-box b{color:var(--ink)}
.crumbs{font-size:12.5px;color:var(--ink-3);margin-bottom:14px}
.crumbs a{color:var(--ink-2)}
.crumbs span{margin:0 6px;color:var(--ink-3)}

/* ---------- booking form ---------- */
.booking{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:24px;
}
@media(min-width:760px){.booking{padding:32px}}
.form-grid{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:700px){.form-grid{grid-template-columns:repeat(2,1fr)}}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:13px;font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:14px;color:var(--ink);background:var(--ivory);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold-soft);border-color:var(--gold)}
.field textarea{min-height:96px;resize:vertical}
.form-note{font-size:12.5px;color:var(--ink-3);margin-top:12px}
.form-msg{margin-top:12px;font-size:13.5px;display:none}
.form-msg.ok{display:block;color:var(--it-green)}
.form-msg.err{display:block;color:var(--it-red)}

/* ---------- footer ---------- */
.ftr{background:var(--ivory-2);border-top:1px solid var(--line);padding:34px 0 22px;margin-top:20px}
.ftr-grid{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:760px){.ftr-grid{grid-template-columns:1.4fr 1fr 1fr}}
.ftr h4{font-size:14px;margin-bottom:10px}
.ftr ul{list-style:none;padding:0;margin:0;font-size:13.5px}
.ftr li{margin-bottom:6px}
.ftr a{color:var(--ink-2)}
.ftr .copy{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:12.5px;color:var(--ink-3)}
.ftr .sameas a{margin-right:10px}

/* ---------- admin ---------- */
.admin-body{background:#f4f1ea}
.admin-wrap{max-width:1100px;margin:0 auto;padding:22px 16px 60px}
.admin-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}
.admin-card h2{font-size:18px;margin-bottom:12px}
.admin-card h3{font-size:15px;margin-bottom:8px}
.admin-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.admin-row input,.admin-row select,.admin-row textarea{
  font-family:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fdfbf7;
}
.admin-row textarea{width:100%;min-height:320px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;line-height:1.6}
.admin-lead{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#fdfbf7}
.admin-lead .m{font-size:12.5px;color:var(--ink-3)}
.admin-lead .t{font-weight:600;font-size:14px}
.badge{display:inline-block;font-size:11.5px;border-radius:999px;padding:2px 9px;background:var(--gold-soft);color:var(--gold-deep)}
.badge.new{background:#e2f0e8;color:var(--it-green)}
.badge.done{background:#ececec;color:var(--ink-2)}
.hidden{display:none}
table.adm{width:100%;border-collapse:collapse;font-size:13.5px}
table.adm th,table.adm td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left;vertical-align:top}
table.adm th{font-size:12.5px;color:var(--ink-3);font-weight:600}

/* ---------- GEO：核心事实速览 ---------- */
.factbox{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:18px 20px;
}
@media(min-width:760px){.factbox{padding:22px 26px}}
.factbox dl{margin:0;display:grid;gap:0;grid-template-columns:1fr}
.fact-row{
  display:grid;grid-template-columns:1fr;gap:2px;
  padding:12px 0;border-bottom:1px dashed var(--line);
}
.fact-row:last-child{border-bottom:none}
@media(min-width:640px){.fact-row{grid-template-columns:150px 1fr;gap:16px;align-items:baseline}}
.factbox dt{font-size:13px;font-weight:700;color:var(--gold-deep)}
.factbox dd{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.7}

/* ---------- 页脚备案与合规 ---------- */
.ftr .copy p{margin:0 0 6px}
.ftr .legal{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px;color:var(--ink-3)}
.ftr .legal .icp{
  color:var(--ink-2);text-decoration:none;border:1px solid var(--line);border-radius:999px;
  padding:3px 12px;background:var(--card);font-size:12.5px;
}
.ftr .legal .icp:hover{color:var(--gold-deep);border-color:#ecd9b6;text-decoration:underline}

/* ---------- misc ---------- */
.note{font-size:12.5px;color:var(--ink-3)}
.disclaimer{
  background:var(--ivory-2);border:1px dashed var(--line);border-radius:var(--r-sm);
  padding:10px 14px;font-size:12.5px;color:var(--ink-2);
}
.gallery{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.gallery{grid-template-columns:repeat(3,1fr)}}
.gallery figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-size:12px;color:var(--ink-3);padding:8px 10px}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{position:relative;padding:0 0 18px 22px;border-left:2px solid var(--line)}
.timeline li:last-child{border-left-color:transparent}
.timeline li::before{
  content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--grad);
}
.timeline .d{font-size:12.5px;color:var(--gold-dark);font-weight:700}
.timeline .t{font-weight:600;font-size:14.5px}
.timeline .x{font-size:13.5px;color:var(--ink-2)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
