/* ============================================================
   合肥市政文外滩物业管理有限公司 · 官网样式
   配色：建筑米白（Architectural Greige）
   字体：Noto Serif SC / Noto Sans SC / Fraunces
   ============================================================ */
:root{
  /* base */
  --bone:#f5f1ea;        /* 主底色 暖米白 */
  --bone-2:#ece6db;      /* 次底色 略深 */
  --paper:#faf8f3;       /* 卡片 近白 */
  --ink:#1a1916;         /* 墨黑 文字/深色块 */
  --ink-2:#23211d;
  --ink-soft:#34312b;
  /* accent */
  --taupe:#8a7b68;       /* 暖灰棕 点缀 */
  --taupe-d:#6e6052;
  --taupe-l:#b0a28e;
  --sand:#cabfa9;
  /* text */
  --text:#2a2823;
  --muted:#6b6358;
  --muted-2:#9a9085;
  --on-dark:#efe9dd;
  --on-dark-soft:rgba(239,233,221,.66);
  --line:rgba(26,25,22,.12);
  --line-soft:rgba(26,25,22,.07);
  --line-dark:rgba(239,233,221,.14);
  /* type */
  --serif:"Noto Serif SC",serif;
  --sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,sans-serif;
  --disp:"Fraunces",serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --maxw:1280px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--text);background:var(--bone);line-height:1.75;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:600;line-height:1.28;letter-spacing:.01em;color:var(--ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--ink);color:var(--bone)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
.eyebrow{font-family:var(--disp);font-style:italic;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe-d);font-weight:400;display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--taupe);display:inline-block}
.eyebrow.center{justify-content:center}
.section-title{font-size:clamp(28px,4.2vw,50px);margin:18px 0 0;letter-spacing:.005em}
.section-head{max-width:760px;margin-bottom:72px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head p.sub{color:var(--muted);font-size:17px;margin-top:22px;font-weight:300}
.lead-serif{font-family:var(--serif);font-weight:400;font-size:clamp(19px,2.2vw,23px);line-height:1.7;color:var(--ink-soft)}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;gap:11px;padding:15px 32px;border-radius:2px;font-size:15px;font-weight:400;font-family:var(--sans);transition:all .4s var(--ease);cursor:pointer;border:1px solid transparent;letter-spacing:.02em}
.btn svg{width:15px;height:15px;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn-dark{background:var(--ink);color:var(--bone)}
.btn-dark:hover{background:var(--ink-soft);transform:translateY(-2px);box-shadow:0 14px 34px rgba(26,25,22,.2)}
.btn-outline{border-color:var(--line);color:var(--ink);background:transparent}
.btn-outline:hover{border-color:var(--ink);background:var(--ink);color:var(--bone)}
.btn-ghost-dark{border-color:var(--line-dark);color:var(--on-dark)}
.btn-ghost-dark:hover{background:rgba(239,233,221,.1);border-color:var(--on-dark)}
.btn-light{background:var(--bone);color:var(--ink)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.link-arrow{display:inline-flex;align-items:center;gap:9px;font-size:15px;color:var(--ink);position:relative;transition:gap .35s var(--ease)}
.link-arrow svg{width:15px;height:15px;transition:transform .35s var(--ease)}
.link-arrow:hover{gap:14px;color:var(--taupe-d)}

/* ============================================================
   HEADER / NAV
   ============================================================ */
header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.nav{display:flex;align-items:center;justify-content:space-between;height:88px;transition:height .4s var(--ease)}
.brand{display:flex;align-items:center;gap:14px;transition:color .4s var(--ease)}
.brand .mark{width:40px;height:40px;flex:none}
.brand .mark svg{width:100%;height:100%}
.brand .txt b{font-family:var(--serif);font-size:19px;font-weight:600;display:block;letter-spacing:.05em;line-height:1.15}
.brand .txt span{font-size:10px;letter-spacing:.36em;font-family:var(--disp);text-transform:uppercase;color:var(--taupe-d);opacity:.8}
.menu{display:flex;gap:40px;list-style:none}
.menu a{font-size:15px;font-weight:300;position:relative;padding:8px 0;color:var(--ink-soft);transition:color .3s;letter-spacing:.02em}
.menu a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:var(--taupe);transition:width .35s var(--ease)}
.menu a:hover,.menu a.active{color:var(--ink)}
.menu a.active::after,.menu a:hover::after{width:100%}
.nav-cta{font-size:14px;padding:10px 24px;border:1px solid var(--line);border-radius:2px;transition:all .35s var(--ease);color:var(--ink)}
.nav-cta:hover{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px}
.hamburger span{width:25px;height:1.6px;background:var(--ink);transition:all .3s;display:block}

/* default (transparent over dark hero) */
header.over-dark .brand .txt b{color:var(--on-dark)}
header.over-dark .brand .mark svg .mk-frame{stroke:var(--on-dark)}
header.over-dark .menu a{color:var(--on-dark-soft)}
header.over-dark .menu a:hover,header.over-dark .menu a.active{color:var(--on-dark)}
header.over-dark .nav-cta{color:var(--on-dark);border-color:var(--line-dark)}
header.over-dark .nav-cta:hover{background:var(--on-dark);color:var(--ink)}
header.over-dark .hamburger span{background:var(--on-dark)}

/* scrolled */
header.scrolled{background:rgba(245,241,234,.86);backdrop-filter:blur(22px) saturate(1.2);box-shadow:0 1px 0 var(--line-soft)}
header.scrolled .nav{height:70px}
header.scrolled .brand .txt b{color:var(--ink)}
header.scrolled .brand .mark svg .mk-frame{stroke:var(--ink)}
header.scrolled .menu a{color:var(--ink-soft)}
header.scrolled .nav-cta{color:var(--ink);border-color:var(--line)}
header.scrolled .nav-cta:hover{background:var(--ink);color:var(--bone)}
header.scrolled .hamburger span{background:var(--ink)}

.menu-overlay{position:fixed;inset:0;background:rgba(26,25,22,.5);z-index:998;opacity:0;visibility:hidden;transition:all .4s}
.menu-overlay.show{opacity:1;visibility:visible}

/* ============================================================
   HERO (home) + PAGE HERO (inner pages)
   ============================================================ */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:var(--ink);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(165deg,#15140f 0%,#1a1916 50%,#23211d 100%)}
.hero-glow{position:absolute;width:1000px;height:1000px;border-radius:50%;background:radial-gradient(circle,rgba(176,162,142,.14) 0%,transparent 60%);top:-300px;right:-260px;pointer-events:none}
.hero-grain{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E")}
.hero-skyline{position:absolute;bottom:0;left:0;right:0;height:42%;opacity:.4;pointer-events:none}
.hero-inner{position:relative;z-index:2;color:var(--on-dark);padding-top:90px}
.hero .eyebrow{color:var(--taupe-l)}
.hero .eyebrow::before{background:var(--taupe-l)}
.hero h1{font-size:clamp(40px,7.4vw,90px);color:var(--on-dark);font-weight:600;margin:26px 0 0;letter-spacing:.015em;line-height:1.18}
.hero h1 .accent{color:var(--taupe-l)}
.hero .lead{font-size:clamp(16px,1.9vw,20px);color:var(--on-dark-soft);max-width:580px;margin:32px 0 0;font-weight:300;line-height:1.85}
.hero-actions{display:flex;gap:18px;margin-top:48px;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:3;color:var(--on-dark-soft);font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-family:var(--disp);display:flex;flex-direction:column;align-items:center;gap:14px}
.scroll-cue .line{width:1px;height:48px;background:linear-gradient(rgba(239,233,221,.5),transparent);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}50%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.page-hero{position:relative;background:var(--ink);color:var(--on-dark);padding:200px 0 96px;overflow:hidden}
.page-hero .hero-glow{top:-360px}
.page-hero .eyebrow{color:var(--taupe-l)}
.page-hero .eyebrow::before{background:var(--taupe-l)}
.page-hero h1{font-size:clamp(34px,5.5vw,64px);color:var(--on-dark);margin:20px 0 0}
.page-hero p{color:var(--on-dark-soft);font-size:18px;max-width:620px;margin-top:24px;font-weight:300}
.crumb{font-size:13px;color:var(--on-dark-soft);font-family:var(--disp);letter-spacing:.05em;margin-bottom:8px}
.crumb a:hover{color:var(--on-dark)}

/* ============================================================
   STATS
   ============================================================ */
.stats{background:var(--paper);padding:0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line-soft)}
.stat{text-align:center;padding:64px 24px;position:relative}
.stat:not(:last-child){border-right:1px solid var(--line-soft)}
.stat .num{font-family:var(--disp);font-size:clamp(40px,5vw,62px);font-weight:400;color:var(--ink);line-height:1;letter-spacing:-.01em}
.stat .num .unit{font-size:.4em;color:var(--taupe-d);margin-left:5px;font-family:var(--sans);font-weight:300}
.stat .label{margin-top:16px;font-size:14.5px;color:var(--muted);letter-spacing:.06em}

/* ============================================================
   SPLIT (about teaser / generic split section)
   ============================================================ */
.split{padding:140px 0}
.split-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:90px;align-items:center}
.split.reverse .split-grid{grid-template-columns:.95fr 1.05fr}
.split.reverse .split-visual{order:-1}
.prose p{color:var(--muted);font-size:16.5px;margin-top:22px;line-height:1.95}
.spirit{display:flex;gap:12px;margin-top:40px;flex-wrap:wrap}
.spirit span{padding:9px 24px;border:1px solid var(--line);border-radius:2px;font-size:14px;color:var(--ink);background:var(--paper);transition:all .35s var(--ease)}
.spirit span:hover{background:var(--ink);color:var(--bone);border-color:var(--ink);transform:translateY(-3px)}

.feature-card{background:var(--ink);border-radius:4px;padding:54px;color:var(--on-dark);position:relative;overflow:hidden}
.feature-card .glow{position:absolute;width:340px;height:340px;background:radial-gradient(circle,rgba(176,162,142,.2),transparent 70%);bottom:-140px;right:-120px}
.feature-card .badge{font-family:var(--disp);font-style:italic;color:var(--taupe-l);font-size:14px;letter-spacing:.08em}
.feature-card h3{color:var(--on-dark);font-size:26px;margin:18px 0 30px;font-weight:500}
.feature-card ul{list-style:none}
.feature-card li{display:flex;gap:15px;padding:15px 0;border-top:1px solid var(--line-dark);font-size:15px;color:var(--on-dark-soft);align-items:flex-start}
.feature-card li svg{width:17px;height:17px;flex:none;color:var(--taupe-l);margin-top:4px}

/* ============================================================
   SERVICES
   ============================================================ */
.section{padding:140px 0}
.section.bone{background:var(--bone)}
.section.paper{background:var(--paper)}
.section.bone-2{background:var(--bone-2)}
.section.dark{background:var(--ink);color:var(--on-dark)}
.section.dark .section-title,.section.dark h2,.section.dark h3,.section.dark h4{color:var(--on-dark)}
.section.dark .section-head p.sub{color:var(--on-dark-soft)}
.section.dark .eyebrow{color:var(--taupe-l)}
.section.dark .eyebrow::before{background:var(--taupe-l)}

.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.svc{position:relative;border-radius:4px;overflow:hidden;min-height:460px;display:flex;flex-direction:column;justify-content:flex-end;padding:42px;color:var(--on-dark);isolation:isolate;cursor:pointer}
.svc::before{content:"";position:absolute;inset:0;z-index:-2;transition:transform 1s var(--ease)}
.svc::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(20,18,14,.94) 0%,rgba(20,18,14,.55) 45%,rgba(20,18,14,.18) 100%)}
.svc:hover::before{transform:scale(1.07)}
.svc-1::before{background:linear-gradient(150deg,#3a342b,#1a1916)}
.svc-2::before{background:linear-gradient(150deg,#403a30,#23211d)}
.svc-3::before{background:linear-gradient(150deg,#322e26,#15140f)}
.svc .num-tag{position:absolute;top:38px;right:42px;font-family:var(--disp);font-size:58px;color:rgba(239,233,221,.13);font-style:italic}
.svc .ico{width:52px;height:52px;border:1px solid rgba(239,233,221,.3);border-radius:3px;display:flex;align-items:center;justify-content:center;margin-bottom:auto}
.svc .ico svg{width:25px;height:25px;color:var(--taupe-l)}
.svc h3{font-size:25px;color:var(--on-dark);margin-top:26px;font-weight:500}
.svc p{font-size:14.5px;color:var(--on-dark-soft);margin-top:14px;line-height:1.7}
.svc .tags{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}
.svc .tags i{font-style:normal;font-size:12px;padding:5px 14px;background:rgba(239,233,221,.12);border-radius:2px;color:var(--on-dark)}

/* detailed service rows */
.svc-detail{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:70px 0;border-top:1px solid var(--line)}
.svc-detail:last-child{border-bottom:1px solid var(--line)}
.svc-detail.flip .sd-text{order:2}
.sd-num{font-family:var(--disp);font-style:italic;font-size:18px;color:var(--taupe-d)}
.svc-detail h3{font-size:32px;margin:14px 0 20px}
.svc-detail .sd-list{list-style:none;margin-top:24px}
.svc-detail .sd-list li{display:flex;gap:12px;padding:11px 0;font-size:15px;color:var(--muted);border-top:1px solid var(--line-soft)}
.svc-detail .sd-list li svg{width:16px;height:16px;color:var(--taupe);flex:none;margin-top:5px}
.sd-visual{aspect-ratio:4/3;border-radius:4px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:rgba(239,233,221,.16)}
.sd-visual .big{font-family:var(--serif);font-size:140px;font-weight:700}
.sd-v1{background:linear-gradient(150deg,#3a342b,#1a1916)}
.sd-v2{background:linear-gradient(150deg,#403a30,#23211d)}
.sd-v3{background:linear-gradient(150deg,#322e26,#15140f)}

/* ============================================================
   七个一
   ============================================================ */
.seven{position:relative;overflow:hidden}
.seven .deco-char{position:absolute;font-family:var(--serif);font-size:44vw;color:rgba(26,25,22,.02);right:-5%;top:-12%;font-weight:700;pointer-events:none;line-height:1}
.seven-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;position:relative}
.seven-item{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;padding:34px 14px;text-align:center;transition:all .4s var(--ease)}
.seven-item:hover{transform:translateY(-8px);border-color:var(--taupe);box-shadow:0 22px 44px rgba(26,25,22,.08);background:#fff}
.seven-item .si-ico{width:42px;height:42px;margin:0 auto 16px;color:var(--taupe-d)}
.seven-item .si-ico svg{width:100%;height:100%}
.seven-item .si-num{font-family:var(--disp);font-style:italic;font-size:13px;color:var(--taupe);display:block;margin-bottom:8px}
.seven-item b{font-weight:500;font-size:15px;color:var(--ink)}

/* ============================================================
   PROJECTS / CASES
   ============================================================ */
.proj-cat{margin-top:54px}
.proj-cat:first-of-type{margin-top:0}
.proj-cat h4{display:flex;align-items:center;gap:16px;font-size:18px;color:var(--taupe-l);margin-bottom:24px;font-weight:500}
.section:not(.dark) .proj-cat h4{color:var(--taupe-d)}
.proj-cat h4 .bar{width:32px;height:1.5px;background:var(--taupe)}
.proj-cat h4 .count{font-family:var(--disp);font-style:italic;font-size:14px;opacity:.7;margin-left:6px}
.proj-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.proj-list .chip{padding:22px 26px;background:rgba(239,233,221,.05);border:1px solid var(--line-dark);border-radius:3px;font-size:16px;color:var(--on-dark);transition:all .35s var(--ease);display:flex;align-items:center;gap:14px}
.section:not(.dark) .proj-list .chip{background:var(--paper);border-color:var(--line-soft);color:var(--ink)}
.proj-list .chip:hover{border-color:var(--taupe);transform:translateY(-3px)}
.proj-list .chip .dot{width:6px;height:6px;border-radius:50%;background:var(--taupe);flex:none}

/* ============================================================
   PARTY 党建
   ============================================================ */
.party-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.party-card{border-radius:4px;padding:42px 32px;background:var(--paper);border:1px solid var(--line-soft);transition:all .4s var(--ease);position:relative;overflow:hidden}
.party-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#a23a30;transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.party-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(26,25,22,.08);background:#fff}
.party-card:hover::before{transform:scaleY(1)}
.party-card .pc-ico{width:42px;height:42px;color:#a23a30;margin-bottom:22px}
.party-card h4{font-size:19px}
.party-card p{font-size:14px;color:var(--muted);margin-top:12px}

/* ============================================================
   NEWS
   ============================================================ */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.news-card{background:var(--paper);border-radius:4px;overflow:hidden;border:1px solid var(--line-soft);transition:all .4s var(--ease);display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-8px);box-shadow:0 26px 54px rgba(26,25,22,.1)}
.news-thumb{height:188px;position:relative;overflow:hidden;background:linear-gradient(150deg,#3a342b,#1a1916)}
.news-thumb .nt-pattern{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(circle at 22% 28%,rgba(176,162,142,.36),transparent 42%)}
.news-thumb .nt-tag{position:absolute;top:18px;left:18px;background:var(--bone);color:var(--ink);font-size:12px;padding:5px 14px;border-radius:2px;font-weight:400}
.news-thumb .nt-icon{position:absolute;bottom:-14px;right:16px;font-family:var(--serif);font-size:84px;color:rgba(239,233,221,.1);font-weight:700}
.news-body{padding:30px;flex:1;display:flex;flex-direction:column}
.news-body .date{font-family:var(--disp);font-style:italic;color:var(--taupe-d);font-size:14px}
.news-body h4{font-size:18px;margin:13px 0 18px;line-height:1.55;flex:1;font-weight:500}
.news-card:hover .link-arrow{gap:14px;color:var(--taupe-d)}

/* notice / 招标 */
.notice-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.notice-row{display:flex;align-items:center;gap:26px;padding:30px 34px;border:1px solid var(--line-soft);border-radius:3px;transition:all .35s var(--ease);background:var(--paper)}
.notice-row:hover{border-color:var(--taupe);transform:translateX(6px)}
.notice-row .nr-date{text-align:center;flex:none;padding-right:26px;border-right:1px solid var(--line-soft)}
.notice-row .nr-date b{font-family:var(--disp);font-size:32px;color:var(--ink);display:block;line-height:1;font-weight:400}
.notice-row .nr-date span{font-size:13px;color:var(--muted)}
.notice-row .nr-title{font-size:16px;color:var(--text)}
.notice-row .nr-arrow{margin-left:auto;color:var(--taupe-d);flex:none}

/* ============================================================
   GENERIC CONTENT BLOCKS (about page honors/team)
   ============================================================ */
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.info-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;padding:40px 36px;transition:all .4s var(--ease)}
.info-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(26,25,22,.07);border-color:var(--line)}
.info-card .ic-ico{width:46px;height:46px;color:var(--taupe-d);margin-bottom:22px}
.info-card h4{font-size:20px;margin-bottom:12px}
.info-card p{font-size:14.5px;color:var(--muted)}

.honor-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.honor-item{display:flex;gap:18px;align-items:center;padding:24px 28px;background:var(--paper);border:1px solid var(--line-soft);border-radius:3px;transition:all .35s var(--ease)}
.honor-item:hover{border-color:var(--taupe);transform:translateY(-3px)}
.honor-item .h-ico{width:38px;height:38px;color:var(--taupe-d);flex:none}
.honor-item span{font-size:15.5px;color:var(--ink)}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-list{margin-top:10px}
.contact-list .ci{display:flex;gap:22px;padding:26px 0;border-top:1px solid var(--line);align-items:center}
.contact-list .ci:first-child{border-top:none}
.contact-list .ci .ci-ico{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;color:var(--taupe-d)}
.contact-list .ci .ci-ico svg{width:20px;height:20px}
.contact-list .ci small{color:var(--muted);font-size:13px;letter-spacing:.05em;display:block}
.contact-list .ci b{font-size:17px;font-weight:400;color:var(--ink);margin-top:3px;display:block}
.contact-list .ci b.phone{font-family:var(--disp);font-size:23px;letter-spacing:.01em}
.form-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;padding:50px}
.form-card h3{font-size:22px;margin-bottom:8px}
.form-card .fc-sub{color:var(--muted);font-size:14px;margin-bottom:30px}
.field{margin-bottom:20px}
.field label{font-size:13px;color:var(--muted);display:block;margin-bottom:9px;letter-spacing:.03em}
.field input,.field textarea{width:100%;background:var(--bone);border:1px solid var(--line);border-radius:2px;padding:14px 16px;color:var(--ink);font-family:var(--sans);font-size:15px;transition:all .3s;font-weight:300}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--taupe);background:#fff}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.map-embed{width:100%;height:340px;border:1px solid var(--line-soft);border-radius:4px;margin-top:14px;background:var(--bone-2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;flex-direction:column;gap:12px}
.map-embed svg{width:34px;height:34px;color:var(--taupe-d)}

/* CTA band */
.cta-band{background:var(--ink);color:var(--on-dark);text-align:center;padding:110px 0}
.cta-band h2{color:var(--on-dark);font-size:clamp(28px,4vw,46px)}
.cta-band p{color:var(--on-dark-soft);font-size:18px;margin:22px auto 40px;max-width:520px}

/* ============================================================
   FOOTER
   ============================================================ */
footer{background:#121109;color:var(--on-dark-soft);padding:80px 0 32px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:48px;padding-bottom:54px;border-bottom:1px solid var(--line-dark)}
.foot-brand .brand{margin-bottom:24px}
.foot-brand .brand .txt b{color:var(--on-dark)}
.foot-brand .brand .mark svg .mk-frame{stroke:var(--on-dark)}
.foot-brand p{font-size:14px;line-height:1.85;max-width:300px}
.foot-col h5{color:var(--on-dark);font-size:14px;margin-bottom:22px;font-family:var(--sans);font-weight:500;letter-spacing:.04em}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:13px}
.foot-col a{font-size:14px;transition:color .3s;font-weight:300}
.foot-col a:hover{color:var(--taupe-l)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:13px;flex-wrap:wrap;gap:14px}
.foot-bottom a:hover{color:var(--taupe-l)}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}
.reveal[data-d="5"]{transition-delay:.4s}.reveal[data-d="6"]{transition-delay:.48s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .split-grid,.split.reverse .split-grid,.contact-grid,.svc-detail,.svc-detail.flip .sd-text{grid-template-columns:1fr!important;gap:48px;order:0}
  .split.reverse .split-visual{order:0}
  .svc-detail .sd-visual{order:-1}
  .svc-grid,.news-grid,.cols-3{grid-template-columns:repeat(2,1fr)}
  .party-grid{grid-template-columns:repeat(2,1fr)}
  .seven-grid{grid-template-columns:repeat(4,1fr)}
  .proj-list{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .wrap{padding:0 24px}
  .menu,.nav-cta{display:none}
  .hamburger{display:flex}
  .menu.open{display:flex;position:fixed;top:0;right:0;bottom:0;width:80%;max-width:340px;background:var(--ink);flex-direction:column;padding:108px 38px;gap:6px;z-index:999;box-shadow:-20px 0 60px rgba(0,0,0,.45)}
  .menu.open a{color:var(--on-dark);font-size:18px;padding:18px 0;border-bottom:1px solid var(--line-dark)}
  .menu.open a::after{display:none}
  .stats .wrap{grid-template-columns:1fr 1fr}
  .stat{padding:44px 18px}
  .stat:nth-child(2){border-right:none}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
  .svc-grid,.news-grid,.notice-list,.party-grid,.cols-3,.honor-list,.proj-list{grid-template-columns:1fr}
  .seven-grid{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr;gap:36px}
  .section,.split{padding:80px 0}
  .section-head{margin-bottom:48px}
  .page-hero{padding:150px 0 70px}
  .feature-card,.form-card{padding:36px 28px}
  .cta-band{padding:74px 0}
}
