/* ドコいく愛知県民 公式サイト 共通スタイル
   レイアウト：くぼたびの構成に合わせた「雑誌の表紙」型。うす水色の地に白い角丸カード、補色のオレンジをメインに、黄色いボタン */
:root{
  --bg:#E4F2FB;
  --card:#FFFFFF;
  --ink:#1F2D3A;
  --sub:#5C7183;
  --line:#CBE2F1;
  --logo:#FF7A3D;
  --yellow:#FFC94A;
  --dark:#22384E;
  --no:#FFC94A;
  --c-about:#FF6F91;
  --c-works:#FF8A3D;
  --c-sns:#F0524A;
  --c-news:#E8A317;
  --c-contact:#2E9BD6;
  --f-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --f-logo:"Mochiy Pop One","Hiragino Maru Gothic ProN","Noto Sans JP",sans-serif;
  --f-en:"Maven Pro","Noto Sans JP",sans-serif;
  --f-num:"Roboto Condensed","Maven Pro",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.9;letter-spacing:.03em;padding-inline:16px}
img,video{max-width:100%;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;line-height:1.4;text-wrap:balance}
:focus-visible{outline:3px solid var(--logo);outline-offset:3px}
.wrap{max-width:1120px;margin-inline:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* ===== ヘッダー ===== */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;margin-inline:-16px;padding:10px 16px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.hd-in{max-width:1120px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.logo img{width:44px;height:44px;border-radius:50%;flex:none}
.logo small{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink);line-height:1.3}
.logo b{display:block;font-family:var(--f-logo);font-weight:400;font-size:19px;color:var(--logo);line-height:1.2;white-space:nowrap}
.gnav{display:flex;gap:4px}
.gnav a{display:grid;padding:4px 12px;text-decoration:none;line-height:1.35;border-radius:8px}
.gnav a b{font-family:var(--f-logo);font-weight:400;font-size:15px}
.gnav a span{font-family:var(--f-en);font-weight:700;font-size:10px;letter-spacing:.08em}
.gnav a:hover{background:var(--bg)}
.gnav a[aria-current="page"] b{color:var(--logo)}
.menu-btn{display:none;border:0;background:var(--ink);color:#fff;border-radius:10px;width:44px;height:44px;font:700 11px var(--f-en);letter-spacing:.06em;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .gnav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--card);flex-direction:column;padding:8px 16px 16px;box-shadow:0 10px 20px rgba(31,45,58,.10)}
  .gnav.open{display:flex}
  .gnav a{grid-template-columns:auto 1fr;align-items:baseline;gap:12px;padding:12px 8px;border-bottom:1px solid var(--line)}
}

/* ===== 共通パーツ ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:260px;max-width:100%;padding:16px 32px;border-radius:999px;background:var(--logo);color:#fff;font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer;font-family:inherit;transition:transform .2s}
.btn::after{content:"→";font-family:var(--f-en)}
.btn:hover{transform:translateY(-2px)}
.btn.white{background:#fff;color:var(--ink)}
.btn.dark{background:var(--ink);color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.sec{padding-block:80px}
.sec-ttl{display:grid;gap:2px;margin-bottom:36px}
.sec-ttl span{font-family:var(--f-en);font-weight:700;font-size:13px;letter-spacing:.12em}
.sec-ttl h2{font-family:var(--f-logo);font-weight:400;font-size:clamp(26px,4vw,36px)}
.sec-ttl.center{justify-items:center;text-align:center}
.box{background:var(--card);border-radius:18px}
.pr{display:inline-block;font-family:var(--f-en);font-size:10px;font-weight:700;border:1px solid currentColor;border-radius:4px;padding:0 5px;line-height:1.6;vertical-align:2px}

/* 下層ページの見出し */
.crumb{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--card);border-radius:8px;padding:4px 12px;font-size:12px;margin-top:20px}
.crumb a{color:var(--c-contact);text-decoration:none}
.crumb i{font-style:normal;color:var(--sub)}
.page-hd{margin-inline:-16px;padding:24px 16px 60px;background:#D3EAF8}
.page-ttl{margin:24px auto 0;max-width:420px;background:var(--card);border:1.5px solid var(--ink);border-radius:60px;padding:22px 24px;display:grid;justify-items:center;gap:4px;text-align:center}
.page-ttl span{font-family:var(--f-en);font-weight:700;font-size:12px;letter-spacing:.12em;border-bottom:1.5px solid var(--ink);padding-bottom:2px}
.page-ttl h1{font-family:var(--f-logo);font-weight:400;font-size:clamp(26px,5vw,36px)}

/* ===== 実績カード ===== */
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.wcard{position:relative;display:block;aspect-ratio:3/4;border-radius:18px;overflow:hidden;text-decoration:none;color:#fff;background:#BFDCEE;max-width:100%}
.wcard img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.wcard:hover img{transform:scale(1.05)}
.wcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(16,40,64,.62) 100%)}
.wcard .meta{position:absolute;left:16px;right:70px;bottom:14px;z-index:1;display:grid;gap:2px}
.wcard .meta small{font-size:11px;font-weight:700}
.wcard .meta b{font-size:clamp(16px,1.9vw,20px);line-height:1.45;font-weight:900}
.wcard .num{position:absolute;right:14px;top:12px;z-index:1;display:grid;justify-items:center;gap:4px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.wcard .num em{font-style:normal;font-family:var(--f-num);font-weight:700;font-size:26px;line-height:1}
.wcard .num span{writing-mode:vertical-rl;font-size:11px;font-weight:700;border-top:1px solid #fff;padding-top:4px}
@media (max-width:900px){.works-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.works-grid{grid-template-columns:1fr}}

/* ===== ニュース（画像つきカード） ===== */
.news-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ncard{display:grid;grid-template-rows:auto 1fr;background:var(--card);color:var(--ink);border-radius:18px;overflow:hidden;text-decoration:none;min-width:0;transition:transform .2s}
a.ncard:hover{transform:translateY(-3px)}
.nc-img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--bg)}
.nc-img img{width:100%;height:100%;object-fit:cover}
.nc-body{display:grid;gap:6px;align-content:start;padding:16px 18px 20px}
.nc-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nc-meta time{font-family:var(--f-en);font-weight:700;font-size:12px;color:var(--sub)}
.nc-tag{font-size:11px;font-weight:700;border-radius:999px;padding:1px 10px;background:var(--logo);color:#fff}
.nc-tag[data-tag="メディア"]{background:var(--c-contact)}
.nc-tag[data-tag="お知らせ"]{background:var(--ink)}
.ncard b{font-size:16px;font-weight:900;line-height:1.5}
.ncard small{font-size:13px;color:var(--sub);line-height:1.7}
.news-list-v .ncard{grid-template-columns:240px 1fr;grid-template-rows:none}
.news-list-v .nc-img{aspect-ratio:auto;height:100%;min-height:150px}
.news-list-v{display:grid;gap:16px}
.nc-media{font-family:var(--f-en);font-weight:700;font-size:12px;color:var(--c-contact)}
.nc-duo{display:grid;grid-template-columns:1fr auto;aspect-ratio:auto;height:240px}
.nc-duo img{min-width:0}
.nc-duo video{height:100%;width:auto;aspect-ratio:9/16;object-fit:cover;border-left:4px solid var(--card)}
.news-cards .is-feature,.news-list-v .is-feature{grid-column:1/-1;grid-template-columns:1.25fr 1fr;grid-template-rows:none}
.is-feature .nc-img{aspect-ratio:16/9;height:100%}
.is-feature .nc-body{padding:28px 30px;align-content:center;gap:10px}
.is-feature b{font-size:19px}
.news-list-v .is-feature .nc-duo{height:300px}
@media (max-width:900px){.news-cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.news-cards{grid-template-columns:1fr}.news-cards .is-feature,.news-list-v .is-feature{grid-template-columns:1fr;grid-template-rows:auto 1fr}.is-feature .nc-body{padding:18px 18px 22px}.nc-duo,.news-list-v .is-feature .nc-duo{height:200px}.news-list-v .ncard{grid-template-columns:1fr;grid-template-rows:auto 1fr}.news-list-v .nc-img{aspect-ratio:16/10;height:auto;min-height:0}}

/* ===== SNSカード ===== */
.sns-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.sns-card{background:var(--card);border-radius:18px;padding:18px;display:grid;gap:14px;align-content:start;text-decoration:none;min-width:0}
.sns-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sns-card .name{display:flex;align-items:center;gap:8px;font-family:var(--f-en);font-weight:700;font-size:17px}
.sns-card .name svg{width:22px;height:22px}
.sns-card .cnt{text-align:right;line-height:1.3}
.sns-card .cnt small{display:block;font-size:10px;font-weight:700}
.sns-card .cnt b{font-family:var(--f-num);font-size:18px}
.sns-card p{font-size:13px;color:var(--sub);line-height:1.7}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.thumbs img{aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:6px}
@media (max-width:820px){.sns-cards{grid-template-columns:1fr}}

/* ===== お問い合わせ帯 ===== */
.contact-band{position:relative;margin-inline:-16px;padding-inline:16px;color:#fff;overflow:hidden}
.contact-band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-band::before{content:"";position:absolute;inset:0;background:rgba(16,40,64,.55);z-index:1}
.contact-band .wrap{position:relative;z-index:2}
.cb-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.cb-head span{font-family:var(--f-en);font-weight:700;letter-spacing:.12em}
.cb-head b{font-family:var(--f-logo);font-weight:400;font-size:22px}
.cb-catch{font-family:var(--f-logo);font-weight:400;font-size:clamp(24px,5vw,52px);line-height:1.45;margin-top:24px}
.cb-catch span{display:inline-block}
.cb-menus{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.cb-menus div{border:2px solid #fff;border-radius:14px;padding:16px;text-align:center;display:grid;gap:2px;background:rgba(255,255,255,.06)}
.cb-menus b{font-family:var(--f-logo);font-weight:400;font-size:clamp(20px,2.6vw,26px)}
.cb-menus small{font-size:12px}
.cb-text{max-width:720px;margin:32px auto 28px;font-size:15px}
@media (max-width:700px){.cb-menus{grid-template-columns:1fr}}

/* ===== フッター ===== */
.ft{margin-inline:-16px;padding:48px 16px 40px;background:#fff}
.ft-in{max-width:1120px;margin-inline:auto;display:grid;gap:24px}
.ft-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px}
.ft-sns{display:flex;flex-wrap:wrap;gap:8px}
.ft-sns a{font-family:var(--f-en);font-weight:700;font-size:13px;text-decoration:none;background:var(--bg);border-radius:999px;padding:6px 14px}
.ft small{color:var(--sub);font-size:12px;line-height:1.7}

/* ===== 挿絵：愛知から日本各地へ ===== */
.map-fig{margin:0 auto;max-width:820px;display:grid;gap:14px}
.jmap{width:100%;height:auto;display:block}
.map-fig figcaption{text-align:center;font-size:13px;color:var(--sub)}
.jm-n{font-family:var(--f-logo);font-size:22px;fill:#fff;paint-order:stroke;stroke:#1F2D3A;stroke-width:4px;stroke-linejoin:round}
.jm-s{font-family:var(--f-body);font-weight:900;font-size:14px;fill:#fff}
.jm-big{font-family:var(--f-logo);font-size:30px;fill:#FF7A3D;paint-order:stroke;stroke:#fff;stroke-width:6px}
.jm-ttl{font-family:var(--f-logo);font-size:44px;fill:#1F2D3A}
.jm-sub{font-family:var(--f-body);font-weight:900;font-size:18px;fill:#5C7183}
.jm-arrow[stroke-dasharray]{animation:jm-flow 1s linear infinite}
@keyframes jm-flow{to{stroke-dashoffset:-13.1}}
.jm-tag{transform-box:fill-box;transform-origin:center;animation:jm-pop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d)}
@keyframes jm-pop{from{transform:scale(.6)}to{transform:scale(1)}}

/* お問い合わせボタン（DM／メール） */
.btn-ig{background:linear-gradient(90deg,#F9A23C,#EE4C6B 55%,#C13584);color:#fff}
.btn-mail{background:var(--yellow);color:var(--ink)}
.cb-mail{text-align:center;margin-top:16px;font-size:14px}
.cb-mail span{user-select:all;font-family:var(--f-en);font-weight:700}
