/*
Theme Name: BlueForest Aomori Modern
Theme URI: https://www.blueforest.jp
Author: BlueForest Project
Author URI: https://www.blueforest.jp
Description: 青森県・弘前市観光サイト BlueForest の既存コンテンツと地図機能を保ったまま、上質なトラベルマガジン風に刷新したレスポンシブテーマ。
Version: 2.0.2
License: All Rights Reserved
Tags: japanese, tourism, aomori, hirosaki, responsive, magazine
*/

:root{
  --ink:#13252b;--ink-mid:#234047;--forest:#1d554b;--forest-deep:#123e38;
  --aomori-blue:#2e7188;--sky:#dcecf0;--snow:#f8faf8;--washi:#f7f6f1;
  --washi-dark:#ebece6;--surface:#fff;--surface-soft:#f1f4ef;
  --text:#1f2a2b;--text-light:#667273;--muted:#8b9491;--line:rgba(19,37,43,.13);
  --sakura:#d990a2;--sakura-light:#f1cbd4;--sakura-deep:#a94f68;--apple:#a8493f;
  --gold:#ad8a4d;--shadow-sm:0 8px 28px rgba(20,42,45,.08);--shadow-md:0 22px 70px rgba(20,42,45,.13);
  --radius-sm:12px;--radius-md:22px;--radius-lg:34px;--container:1180px;--reading:780px;--header-height:78px
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100%;color:var(--text);background:radial-gradient(circle at 14% 4%,rgba(46,113,136,.055),transparent 28rem),radial-gradient(circle at 90% 15%,rgba(217,144,162,.045),transparent 30rem),var(--washi);font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img,svg{max-width:100%}img{height:auto}a{color:inherit}button,input,select,textarea{font:inherit}::selection{background:var(--sky);color:var(--ink)}
.wrap{width:min(var(--container),calc(100% - 48px));margin-inline:auto}
.reading-wrap{width:min(var(--reading),calc(100% - 40px));margin-inline:auto}
.skip-link,.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{clip:auto;width:auto;height:auto;margin:0;left:1rem;top:1rem;z-index:9999;padding:.65rem 1rem;background:#fff;color:var(--ink);border-radius:999px;box-shadow:var(--shadow-sm)}
.eyebrow,.section-label,.page-hero-label,.blog-hero-label,.post-hero-label,.contact-hero-label{margin:0 0 .8rem;color:var(--aomori-blue);font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.section-title,.page-hero-title,.blog-hero-title,.post-hero-title,.contact-hero-title{margin:0;color:var(--ink);font-family:"Shippori Mincho","Noto Serif JP",serif;font-weight:700;letter-spacing:.02em;line-height:1.3}
.section-title{font-size:clamp(2rem,4.3vw,3.6rem)}.section-desc{max-width:680px;margin:1.2rem 0 0;color:var(--text-light);font-size:.98rem;line-height:2}

/* header */
.site-header{position:sticky;top:0;z-index:900;height:var(--header-height);border-bottom:1px solid rgba(19,37,43,.08);background:rgba(248,250,248,.88);backdrop-filter:saturate(150%) blur(18px);transition:box-shadow .25s,background .25s}
.site-header.is-scrolled{background:rgba(248,250,248,.97);box-shadow:0 12px 40px rgba(20,42,45,.08)}body.admin-bar .site-header{top:32px}
.site-header-inner{width:min(1320px,calc(100% - 40px));height:100%;margin-inline:auto;display:flex;align-items:center;gap:2rem}
.site-brand{display:inline-flex;align-items:center;gap:.8rem;flex:0 0 auto;text-decoration:none}
.brand-mark{position:relative;display:grid;place-items:center;width:42px;height:42px;overflow:hidden;border-radius:14px 14px 20px 14px;background:linear-gradient(145deg,var(--forest),var(--aomori-blue));color:#fff;font-family:"Shippori Mincho",serif;font-size:1rem;box-shadow:0 9px 25px rgba(29,85,75,.18)}
.brand-mark::after{content:"";position:absolute;width:24px;height:24px;right:-9px;bottom:-9px;border-radius:50%;border:7px solid rgba(255,255,255,.3)}
.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-name{color:var(--ink);font-family:"Shippori Mincho",serif;font-size:1.12rem;font-weight:700;letter-spacing:.05em}.brand-sub{margin-top:.25rem;color:var(--text-light);font-size:.62rem;font-weight:700;letter-spacing:.14em}
.header-menu-shell{margin-left:auto;display:flex;align-items:center;gap:1rem}.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:clamp(.55rem,1.5vw,1.3rem)}
.primary-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;color:#314043;text-decoration:none;font-size:.79rem;font-weight:700;letter-spacing:.045em;white-space:nowrap}
.primary-nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:4px;height:2px;border-radius:999px;background:var(--aomori-blue);transition:left .2s,right .2s}.primary-nav a:hover::after,.primary-nav a[aria-current="page"]::after{left:0;right:0}
.header-safety{display:inline-flex;align-items:center;gap:.55rem;min-height:42px;padding:0 1rem;border:1px solid rgba(168,73,63,.22);border-radius:999px;background:rgba(168,73,63,.07);color:#81372f;text-decoration:none;font-size:.76rem;font-weight:700;white-space:nowrap}
.header-safety::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--apple);box-shadow:0 0 0 5px rgba(168,73,63,.09)}
.menu-toggle{display:none;width:46px;height:46px;padding:0;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.78);cursor:pointer}.menu-toggle-lines,.menu-toggle-lines::before,.menu-toggle-lines::after{display:block;width:20px;height:1.5px;margin-inline:auto;background:var(--ink);transition:transform .2s,opacity .2s}.menu-toggle-lines{position:relative}.menu-toggle-lines::before,.menu-toggle-lines::after{content:"";position:absolute;left:0}.menu-toggle-lines::before{top:-6px}.menu-toggle-lines::after{top:6px}.menu-toggle[aria-expanded=true] .menu-toggle-lines{background:transparent}.menu-toggle[aria-expanded=true] .menu-toggle-lines::before{top:0;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-lines::after{top:0;transform:rotate(-45deg)}

/* buttons */
.btn,.btn-primary,.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:50px;padding:.75rem 1.35rem;border-radius:999px;text-decoration:none;font-size:.84rem;font-weight:700;letter-spacing:.045em;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}.btn::after,.btn-primary::after,.btn-outline::after{content:"→";font-size:1rem}.btn:hover,.btn-primary:hover,.btn-outline:hover{transform:translateY(-2px)}
.btn-primary{border:1px solid var(--forest);background:var(--forest);color:#fff;box-shadow:0 12px 28px rgba(29,85,75,.17)}.btn-primary:hover{background:var(--forest-deep)}.btn-outline{border:1px solid rgba(255,255,255,.42);color:#fff;background:rgba(255,255,255,.04)}.btn-outline:hover{background:rgba(255,255,255,.08)}.btn-light{border-color:var(--line);background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}

/* front hero */
.home-hero{position:relative;min-height:min(790px,calc(100vh - var(--header-height)));overflow:hidden;background:#112a2d;color:#fff}.home-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 18%,rgba(217,144,162,.18),transparent 29%),radial-gradient(circle at 76% 8%,rgba(73,143,166,.24),transparent 31%),linear-gradient(135deg,rgba(8,26,28,.05),rgba(8,26,28,.65))}
.hero-petals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.58}.home-hero-grid{position:relative;z-index:3;width:min(1320px,calc(100% - 48px));min-height:inherit;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);align-items:center;gap:clamp(3rem,6vw,7rem);padding:6.5rem 0 5rem}
.home-hero-copy{max-width:700px}.hero-kicker{display:inline-flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;color:#c9d8d6;font-size:.72rem;font-weight:700;letter-spacing:.24em}.hero-kicker::before{content:"";width:44px;height:1px;background:var(--sakura)}
.home-hero h1{margin:0;font-family:"Shippori Mincho",serif;font-size:clamp(3.2rem,7vw,6.9rem);font-weight:700;letter-spacing:-.015em;line-height:1.06}.home-hero h1 .hero-en{display:block;margin-top:.35rem;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.58);font-family:"Noto Sans JP",sans-serif;font-size:.47em;font-weight:400;letter-spacing:.14em}
.hero-lead{max-width:600px;margin:1.8rem 0 0;color:rgba(255,255,255,.74);font-family:"Noto Serif JP",serif;font-size:clamp(1rem,1.5vw,1.18rem);line-height:2}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.4rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:1.7rem;margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.13)}.hero-fact{display:flex;flex-direction:column}.hero-fact strong{font-family:"Shippori Mincho",serif;font-size:1.2rem}.hero-fact span{margin-top:.25rem;color:rgba(255,255,255,.5);font-size:.68rem;letter-spacing:.1em}
.hero-art{position:relative;min-height:520px;border:1px solid rgba(255,255,255,.12);border-radius:44px 44px 110px 44px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 45%),linear-gradient(160deg,#2d6570 0%,#1d4745 47%,#173031 100%);box-shadow:0 40px 90px rgba(0,0,0,.22)}
.hero-art::before{content:"AOMORI";position:absolute;top:1.3rem;left:1.5rem;color:rgba(255,255,255,.09);font-size:clamp(4rem,8vw,8rem);font-weight:800;letter-spacing:-.05em;line-height:1}.hero-sun{position:absolute;top:78px;right:70px;width:106px;height:106px;border-radius:50%;background:rgba(239,207,171,.9)}
.hero-mountain{position:absolute;left:-10%;right:-10%;bottom:22%;height:43%;background:linear-gradient(155deg,transparent 48%,rgba(232,240,236,.22) 49% 52%,transparent 53%),linear-gradient(25deg,transparent 45%,rgba(7,32,32,.48) 46%);clip-path:polygon(0 100%,18% 51%,29% 68%,48% 16%,64% 55%,77% 31%,100% 100%)}
.hero-forest{position:absolute;left:0;right:0;bottom:0;height:40%;opacity:.96;background:linear-gradient(145deg,transparent 48%,#143d38 49%) 0 100%/65px 118px repeat-x,linear-gradient(215deg,transparent 48%,#17342f 49%) 25px 100%/74px 130px repeat-x,#102d2b}
.hero-castle{position:absolute;left:50%;bottom:66px;width:min(68%,360px);transform:translateX(-50%);fill:rgba(255,255,255,.9);filter:drop-shadow(0 18px 24px rgba(0,0,0,.28))}.hero-art-note{position:absolute;left:1.6rem;bottom:1.5rem;max-width:230px;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(15,38,38,.55);backdrop-filter:blur(8px);color:rgba(255,255,255,.7);font-size:.72rem;line-height:1.7}

/* front sections */
.front-section{padding:clamp(5rem,8vw,8.5rem) 0}.front-section-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2rem,4vw,3.4rem)}.front-section-head .section-desc{margin-top:0;max-width:520px}
.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:start}.aomori-stats{position:sticky;top:calc(var(--header-height) + 30px);display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stat-card{min-height:190px;padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.68);box-shadow:var(--shadow-sm)}.stat-card:first-child{grid-column:1/-1;min-height:240px;color:#fff;background:linear-gradient(145deg,var(--forest),#193f42)}
.stat-card .stat-num{display:block;margin-top:.9rem;font-family:"Shippori Mincho",serif;font-size:clamp(2.3rem,5vw,4rem);line-height:1}.stat-card .stat-label{display:block;margin-top:.8rem;color:inherit;opacity:.7;font-size:.75rem;line-height:1.65}.stat-card .stat-icon{font-size:1.35rem}
.intro-copy p{margin:0 0 1.2rem;color:var(--text-light);font-size:1rem;line-height:2.15}.intro-copy .section-title{margin-bottom:1.7rem}
.entry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.entry-card{position:relative;min-height:260px;padding:1.5rem;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.72);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s,border-color .25s}
.entry-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:rgba(46,113,136,.2)}.entry-card:nth-child(1){grid-column:span 2;background:linear-gradient(145deg,#183f3a,#1d5b58);color:#fff}.entry-card:nth-child(2){background:linear-gradient(145deg,#e5eff1,#f8fbfb)}.entry-card:nth-child(3){background:linear-gradient(145deg,#f4e9e7,#fff)}.entry-card:nth-child(4){background:linear-gradient(145deg,#eef0e6,#fff)}
.entry-no{display:block;color:var(--aomori-blue);font-size:.68rem;font-weight:700;letter-spacing:.18em}.entry-card:first-child .entry-no{color:var(--sakura-light)}.entry-card h3{position:relative;z-index:2;margin:3.2rem 0 .8rem;font-family:"Shippori Mincho",serif;font-size:1.45rem;line-height:1.45}.entry-card p{position:relative;z-index:2;margin:0;color:var(--text-light);font-size:.84rem;line-height:1.8}.entry-card:first-child p{color:rgba(255,255,255,.66)}
.entry-arrow{position:absolute;right:1.4rem;bottom:1.3rem;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.62);transition:transform .2s}.entry-card:first-child .entry-arrow{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08)}.entry-card:hover .entry-arrow{transform:translateX(4px)}
.highlights-section{background:#112a2d;color:#fff}.highlights-section .section-title{color:#fff}.highlights-section .section-label{color:var(--sakura-light)}.highlights-section .section-desc{color:rgba(255,255,255,.58)}
.spots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);background:rgba(255,255,255,.1)}
.spot-card{position:relative;min-height:320px;padding:2rem;overflow:hidden;background:#163337;color:#fff;text-decoration:none;transition:background .25s}.spot-card:hover{background:#1c4146}.spot-card::before{content:attr(data-number);position:absolute;right:1rem;top:.25rem;color:rgba(255,255,255,.045);font-size:6.5rem;font-weight:800;letter-spacing:-.08em}
.spot-tag{display:inline-flex;padding:.38rem .65rem;border:1px solid rgba(255,255,255,.17);border-radius:999px;color:rgba(255,255,255,.63);font-size:.62rem;font-weight:700;letter-spacing:.12em}.spot-name{margin-top:5rem;font-family:"Shippori Mincho",serif;font-size:1.5rem}.spot-desc{max-width:330px;margin:.8rem 0 0;color:rgba(255,255,255,.58);font-size:.85rem;line-height:1.85}.spot-link{position:absolute;right:1.6rem;bottom:1.5rem;color:var(--sakura-light);font-size:.75rem;font-weight:700}
.seasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.season-item{position:relative;min-height:350px;padding:1.6rem;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--line);background:#fff}.season-item::before{content:"";position:absolute;inset:0;opacity:.55;pointer-events:none}.season-item.spring::before{background:radial-gradient(circle at 80% 15%,rgba(217,144,162,.32),transparent 42%)}.season-item.summer::before{background:radial-gradient(circle at 80% 15%,rgba(46,113,136,.28),transparent 42%)}.season-item.autumn::before{background:radial-gradient(circle at 80% 15%,rgba(173,138,77,.28),transparent 42%)}.season-item.winter::before{background:radial-gradient(circle at 80% 15%,rgba(120,155,170,.24),transparent 42%)}
.season-kanji{position:relative;z-index:1;color:var(--ink);font-family:"Shippori Mincho",serif;font-size:clamp(4.6rem,8vw,7rem);line-height:1;opacity:.12}.season-name{position:relative;z-index:1;margin-top:4rem;color:var(--aomori-blue);font-size:.68rem;font-weight:700;letter-spacing:.17em}.season-desc{position:relative;z-index:1;margin:.8rem 0 0;color:var(--text-light);font-size:.84rem;line-height:1.85}
.latest-news-section{background:#edf2ef}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.news-card{display:flex;flex-direction:column;min-height:260px;padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.88);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}.news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.news-card-date{color:var(--aomori-blue);font-size:.7rem;font-weight:700;letter-spacing:.08em}.news-card h3{margin:1.2rem 0 .8rem;font-family:"Shippori Mincho",serif;font-size:1.18rem;line-height:1.65}.news-card p{margin:0;color:var(--text-light);font-size:.82rem;line-height:1.8}.news-card .read-more{margin-top:auto;padding-top:1.3rem;color:var(--forest);font-size:.75rem;font-weight:700}
.safety-strip{padding:2rem 0;background:var(--apple);color:#fff}.safety-strip-inner{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}.safety-strip h2{margin:0;font-family:"Shippori Mincho",serif;font-size:clamp(1.5rem,3vw,2.25rem)}.safety-strip p{margin:.45rem 0 0;color:rgba(255,255,255,.72);font-size:.82rem}.safety-strip .btn{border:1px solid rgba(255,255,255,.35);background:#fff;color:#73342f}

/* generic pages */
.page-hero,.blog-hero,.post-hero,.contact-hero{position:relative;overflow:hidden;padding:clamp(4.2rem,8vw,7rem) 0 clamp(2.8rem,5vw,4.5rem);background:linear-gradient(145deg,#eef4f2 0%,#f7f6f1 58%,#edf2f4 100%);border-bottom:1px solid var(--line)}
.page-hero::after,.blog-hero::after,.contact-hero::after{content:"BLUEFOREST";position:absolute;right:-1rem;bottom:-2rem;color:rgba(19,37,43,.035);font-size:clamp(5rem,14vw,12rem);font-weight:800;letter-spacing:-.06em;line-height:.8;pointer-events:none}
.page-hero-inner,.blog-hero-inner,.post-hero-inner,.contact-hero-inner{position:relative;z-index:2;width:min(var(--container),calc(100% - 48px));margin-inline:auto}
.page-hero-title,.blog-hero-title,.contact-hero-title{max-width:900px;font-size:clamp(2.2rem,5vw,4.35rem)}.page-hero-note{max-width:690px;margin:1rem 0 0;color:var(--text-light)}
.breadcrumb{width:min(var(--container),calc(100% - 48px));margin:1rem auto 0;padding:.8rem 0;color:var(--text-light);font-size:.72rem;line-height:1.7}.breadcrumb a{color:var(--aomori-blue);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb span{margin:0 .5rem;color:#a0aaa7}
.page-main{padding:1.3rem 0 6rem}.page-layout{width:min(var(--container),calc(100% - 48px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(2rem,5vw,5rem);align-items:start}
.page-article,.post-article,.contact-wrap{min-width:0;padding:clamp(2rem,4vw,3.5rem);border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.9);box-shadow:var(--shadow-sm)}
.page-article>*:first-child,.post-article>*:first-child{margin-top:0}.page-article h2,.post-article h2{margin:2.8rem 0 1.1rem;color:var(--ink);font-family:"Shippori Mincho",serif;font-size:clamp(1.5rem,3vw,2.05rem);line-height:1.45}.page-article h2::before,.post-article h2::before{content:"";display:block;width:42px;height:3px;margin-bottom:.8rem;border-radius:99px;background:linear-gradient(90deg,var(--aomori-blue),var(--sakura))}
.page-article h3,.post-article h3{margin:2rem 0 .8rem;color:var(--forest);font-family:"Shippori Mincho",serif;font-size:1.25rem}.page-article h4,.post-article h4{margin:1.5rem 0 .65rem;color:var(--ink);font-size:1rem}.page-article p,.post-article p{margin:0 0 1.2rem}.page-article ul,.page-article ol,.post-article ul,.post-article ol{margin:1rem 0 1.4rem;padding-left:1.5rem}.page-article li,.post-article li{margin:.45rem 0}.page-article a,.post-article a{color:var(--aomori-blue);text-underline-offset:.2em}
.page-article blockquote,.post-article blockquote{margin:1.8rem 0;padding:1.25rem 1.4rem;border-left:3px solid var(--aomori-blue);border-radius:0 14px 14px 0;background:var(--surface-soft);color:#445153}
.page-article table,.post-article table{width:100%;margin:1.5rem 0;border-collapse:collapse;border:1px solid var(--line);font-size:.88rem}.page-article th,.page-article td,.post-article th,.post-article td{padding:.8rem .9rem;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.page-article th,.post-article th{background:#eef3f1;color:var(--ink)}
.page-article iframe,.post-article iframe{max-width:100%;border-radius:16px}.page-article .wp-block-image img,.post-article .wp-block-image img{border-radius:18px}
.page-sidebar{position:sticky;top:calc(var(--header-height) + 28px);display:grid;gap:1rem}.sidebar-card{padding:1.2rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.65)}.sidebar-label{margin:0 0 .8rem;color:var(--aomori-blue);font-size:.64rem;font-weight:700;letter-spacing:.15em}.sidebar-card a{display:block;padding:.55rem 0;border-bottom:1px solid var(--line);color:#425053;text-decoration:none;font-size:.78rem;line-height:1.55}.sidebar-card a:last-child{border-bottom:0}.sidebar-card a:hover{color:var(--aomori-blue)}
.related-pages{width:min(var(--container),calc(100% - 48px));margin:0 auto 6rem}.related-pages-label{margin-bottom:1rem;color:var(--aomori-blue);font-size:.72rem;font-weight:700;letter-spacing:.15em}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}.related-card{position:relative;padding:1.25rem 3rem 1.25rem 1.25rem;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-decoration:none;font-family:"Shippori Mincho",serif;font-size:.92rem;box-shadow:var(--shadow-sm)}.related-card::after{content:"→";position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--aomori-blue)}

/* blog */
.blog-ai-notice,.post-ai-notice{width:min(var(--container),calc(100% - 48px));margin:1.2rem auto 0}.blog-ai-notice p,.post-ai-notice p{margin:0;padding:.9rem 1rem;border:1px solid rgba(46,113,136,.13);border-radius:14px;background:rgba(220,236,240,.55);color:#566568;font-size:.76rem;line-height:1.75}
.blog-list{width:min(var(--container),calc(100% - 48px));margin:1.2rem auto 0;padding-bottom:5rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.blog-card{position:relative;display:flex;flex-direction:column;min-height:285px;padding:clamp(1.35rem,3vw,2rem);border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.88);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.blog-card-date{color:var(--aomori-blue);font-size:.7rem;font-weight:700;letter-spacing:.08em}.blog-card-title{margin:1rem 0 .8rem;font-family:"Shippori Mincho",serif;font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.55}.blog-card-excerpt{margin:0;color:var(--text-light);font-size:.84rem;line-height:1.85}.blog-card-more{margin-top:auto;padding-top:1.2rem;color:var(--forest);font-size:.74rem;font-weight:700}
.blog-pagination,.post-nav{width:min(var(--container),calc(100% - 48px));margin:0 auto 5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.78rem}.blog-pagination a,.post-nav a{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .85rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--forest);text-decoration:none}.blog-empty{width:min(var(--container),calc(100% - 48px));margin:0 auto;padding:5rem 0;color:var(--text-light)}
.post-hero{background:radial-gradient(circle at 85% 0%,rgba(217,144,162,.14),transparent 30%),linear-gradient(145deg,#123035,#193f42);border-bottom:0}.post-hero-label{color:var(--sakura-light)}.post-hero-date{margin:0 0 .7rem;color:rgba(255,255,255,.5);font-size:.72rem;letter-spacing:.09em}.post-hero-title{max-width:980px;color:#fff;font-size:clamp(2rem,4.8vw,4rem)}.post-main{padding:1.2rem 0 3rem}.post-main .post-article{width:min(var(--reading),calc(100% - 40px));margin-inline:auto}

/* contact */
.contact-main{padding:1.2rem 0 6rem}.contact-wrap{width:min(760px,calc(100% - 40px));margin-inline:auto}.contact-intro{margin:0 0 1.8rem;color:var(--text-light);line-height:2}.contact-notice{margin-bottom:1.5rem;padding:1rem 1.1rem;border-radius:14px;font-size:.84rem}.contact-notice.success{border:1px solid #b8d6c4;background:#eaf6ee;color:#28553a}.contact-notice.error{border:1px solid #e2b8b3;background:#faecea;color:#73362f}
.contact-field{margin-bottom:1.2rem}.contact-field label{display:block;margin-bottom:.45rem;color:var(--ink);font-size:.82rem;font-weight:700}.contact-field .required{margin-left:.35rem;color:var(--apple);font-size:.68rem}.contact-field input[type=text],.contact-field input[type=email],.contact-field input[type=url],.contact-field select,.contact-field textarea{width:100%;min-height:48px;padding:.75rem .9rem;border:1px solid #d7ddda;border-radius:12px;outline:none;background:#fbfcfb;color:var(--text);transition:border-color .2s,box-shadow .2s,background .2s}.contact-field textarea{min-height:180px;resize:vertical}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--aomori-blue);background:#fff;box-shadow:0 0 0 4px rgba(46,113,136,.09)}.contact-hp{position:absolute;left:-9999px;top:-9999px}.contact-submit{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.7rem 1.5rem;border:0;border-radius:999px;background:var(--forest);color:#fff;font-weight:700;cursor:pointer;transition:transform .2s,background .2s}.contact-submit:hover{transform:translateY(-2px);background:var(--forest-deep)}

/* compatibility */
.admin-only-note{margin:1.5rem 0;padding:1rem 1.2rem;border:1px dashed #c79a40;border-radius:12px;background:#fff8df}.admin-only-label{margin:0 0 .5rem!important;color:#7f5d1b;font-size:.75rem;font-weight:700}.a8-ad-box{margin:2rem 0;padding:1rem;border:1px solid var(--line);border-radius:18px;background:#fff;text-align:center}.a8-ad-label{margin:0 0 .55rem!important;color:var(--muted);font-size:.62rem;letter-spacing:.15em}.a8-ad-inner{overflow-x:auto}
.evac-quick-box{border-radius:16px!important;margin:1.5rem 0!important}.evac-quick-btn{border-radius:999px!important}.evac-filter-box,.evac-definitions .box{border-radius:14px!important}#evac-map,#danger-map{border-radius:18px!important;box-shadow:var(--shadow-sm)}#evac-locate-btn{border-radius:999px!important}#danger-map{width:100%;min-height:480px;background:#e9efed}

/* footer */
.site-footer{position:relative;overflow:hidden;padding:4.5rem 0 2rem;background:#10272b;color:#fff}.site-footer::before{content:"BLUEFOREST";position:absolute;right:-1rem;bottom:-1rem;color:rgba(255,255,255,.025);font-size:clamp(6rem,18vw,15rem);font-weight:800;letter-spacing:-.08em;line-height:.7}.footer-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:3rem}.footer-brand .brand-name{color:#fff;font-size:1.45rem}.footer-brand p{max-width:330px;margin:1rem 0 0;color:rgba(255,255,255,.52);font-size:.78rem;line-height:1.8}.footer-col h3{margin:0 0 .9rem;color:rgba(255,255,255,.42);font-size:.65rem;letter-spacing:.16em}.footer-col a{display:block;padding:.32rem 0;color:rgba(255,255,255,.72);text-decoration:none;font-size:.77rem}.footer-col a:hover{color:#fff}.footer-bottom{position:relative;z-index:2;margin-top:3.5rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.09);display:flex;justify-content:space-between;gap:1rem;color:rgba(255,255,255,.36);font-size:.66rem}.footer-bottom .affiliate-notice{margin:0;color:rgba(255,255,255,.36)}
/* Legacy reveal hook: always visible by default. JS may add .reveal-ready only to decorative elements. */
.reveal{opacity:1;transform:none}

@media(max-width:1180px){
 .header-menu-shell{position:fixed;inset:var(--header-height) 0 auto 0;display:block;max-height:calc(100vh - var(--header-height));padding:1rem 20px 1.4rem;overflow:auto;border-top:1px solid var(--line);background:rgba(248,250,248,.98);transform:translateY(-130%);opacity:0;pointer-events:none;transition:transform .25s,opacity .2s}
 body.admin-bar .header-menu-shell{top:calc(var(--header-height) + 32px)}.header-menu-shell.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.menu-toggle{display:block;margin-left:auto}.primary-nav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.primary-nav a{min-height:48px;padding:.3rem .8rem;border-radius:12px;background:#fff}.primary-nav a::after{display:none}.header-safety{width:100%;justify-content:center;margin-top:.8rem}
 .home-hero-grid{grid-template-columns:1fr 420px;gap:2.5rem}.entry-grid{grid-template-columns:repeat(2,1fr)}.entry-card:nth-child(1){grid-column:span 1}.spots-grid{grid-template-columns:repeat(2,1fr)}.seasons-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-grid .footer-col:last-child{grid-column:2/-1}
}
@media(max-width:900px){
 :root{--header-height:70px}body.admin-bar .site-header{top:46px}body.admin-bar .header-menu-shell{top:calc(var(--header-height) + 46px)}
 .home-hero-grid{grid-template-columns:1fr;min-height:auto;padding:5rem 0 4rem}.hero-art{min-height:410px}.intro-grid{grid-template-columns:1fr}.aomori-stats{position:static;grid-template-columns:repeat(3,1fr)}.stat-card:first-child{grid-column:auto;min-height:190px}.page-layout{grid-template-columns:1fr}.page-sidebar{position:static;grid-template-columns:repeat(2,1fr)}.related-grid{grid-template-columns:repeat(2,1fr)}.news-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid .footer-col:last-child{grid-column:auto}
}
@media(max-width:680px){
 .wrap,.page-hero-inner,.blog-hero-inner,.post-hero-inner,.contact-hero-inner,.blog-list,.blog-ai-notice,.post-ai-notice,.blog-pagination,.post-nav,.related-pages,.page-layout{width:min(100% - 28px,var(--container))}
 .site-header-inner{width:calc(100% - 24px)}.brand-sub{display:none}.brand-mark{width:38px;height:38px}.home-hero-grid{width:calc(100% - 28px);padding-top:3.8rem}.home-hero h1{font-size:clamp(2.8rem,15vw,4.8rem)}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn-primary,.hero-actions .btn-outline{width:100%}.hero-art{min-height:330px;border-radius:30px 30px 70px 30px}.hero-sun{width:70px;height:70px;top:52px;right:38px}
 .front-section{padding:4.5rem 0}.front-section-head{align-items:start;flex-direction:column}.aomori-stats{grid-template-columns:1fr 1fr}.stat-card:first-child{grid-column:1/-1}.entry-grid,.spots-grid,.seasons-grid,.blog-list,.related-grid,.page-sidebar,.footer-grid{grid-template-columns:1fr}.entry-card:nth-child(1){grid-column:auto}.spot-card{min-height:270px}.season-item{min-height:290px}.safety-strip-inner{grid-template-columns:1fr}.safety-strip .btn{width:100%}
 .page-hero,.blog-hero,.post-hero,.contact-hero{padding:3.6rem 0 2.7rem}.page-article,.post-article,.contact-wrap{padding:1.45rem;border-radius:22px}.post-main .post-article{width:min(100% - 28px,var(--reading))}.footer-grid .footer-col:last-child{grid-column:auto}.footer-bottom{flex-direction:column}.primary-nav ul{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}}

/* Progressive reveal: content is never hidden unless JS has initialized the observer. */
.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.reveal-ready.is-revealed{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}}
