
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
font-family:'Noto Serif JP', serif;
background:#ffffff;
color:#0F2341;
overflow-x:hidden;
line-height:1.8;
}
:root {
--navy: #0F2341;
--navy-mid: #1a3560;
--navy-deep: #071629;
--gold: #C9A227;
--gold-lt: #e8c14d;
--gold-pale: #f5e9c4;
--white: #FFFFFF;
--cream: #FAF7F2;
--text-body: #3d4f6a;
--text-muted: rgba(255,255,255,0.65);
}
nav {
position:fixed; top:0; left:0; right:0; z-index:500;
height:68px;
background:rgba(7,22,41,0.96);
backdrop-filter:blur(18px);
border-bottom:1px solid rgba(201,162,39,0.18);
display:flex; align-items:center;
justify-content:space-between;
padding:0 52px;
}
.nav-logo {
display:flex; align-items:center; gap:14px;
text-decoration:none;
}
.nav-logo img { height:28px; filter:drop-shadow(0 0 10px rgba(255,235,120,0.55)) drop-shadow(0 0 22px rgba(201,162,39,0.35)) brightness(1.08) contrast(1.05) saturate(1.4); }
.nav-logo-text {
font-family:'Cormorant Garamond', serif;
font-size:0.68rem; letter-spacing:0.12em;
color:rgba(255,255,255,0.55);
white-space:nowrap;
}
.nav-links {
display:flex; gap:36px; list-style:none;
}
.nav-links a {
font-family:'Noto Serif JP', serif;
font-size:0.73rem; font-weight:300;
letter-spacing:0.14em;
color:rgba(255,255,255,0.58);
text-decoration:none;
transition:color .3s;
}
.nav-links a:hover { color:var(--gold); }
.nav-btn {
background:var(--gold);
color:var(--navy-deep);
font-family:'Noto Serif JP', serif;
font-size:0.72rem; font-weight:700;
letter-spacing:0.2em;
padding:10px 24px;
text-decoration:none;
transition:background .3s, transform .3s;
white-space:nowrap;
}
.nav-btn:hover { background:var(--gold-lt); transform:translateY(-1px); }
#hero {
min-height:100vh;
background:var(--navy-deep);
display:flex; align-items:center; justify-content:center;
flex-direction:column;
text-align:center;
padding:100px 48px 80px;
position:relative; overflow:hidden;
}
.hero-bg-glow {
position:absolute; inset:0; pointer-events:none;
background:
radial-gradient(ellipse 100% 60% at 50% 15%, rgba(201,162,39,0.07) 0%, transparent 65%),
radial-gradient(ellipse 55% 55% at 90% 90%, rgba(26,53,96,0.6) 0%, transparent 55%),
radial-gradient(ellipse 55% 55% at 10% 10%, rgba(26,53,96,0.5) 0%, transparent 55%);
}
.hero-grid {
position:absolute; inset:0; pointer-events:none;
background-image:
linear-gradient(rgba(201,162,39,0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(201,162,39,0.025) 1px, transparent 1px);
background-size:72px 72px;
}
.hero-content {
position:relative; z-index:2;
max-width:860px; width:100%;
display:flex; flex-direction:column; align-items:center; gap:0;
}
.hero-logo-wrap {
margin-bottom:48px;
opacity:0; animation:fadeUp 1.1s ease .2s forwards;
}
.hero-logo-wrap img {
width:340px; max-width:72vw;
height:auto;
display:block;
filter:drop-shadow(0 0 45px rgba(255,235,120,0.65)) drop-shadow(0 0 90px rgba(201,162,39,0.4)) brightness(1.08) contrast(1.05);
}
.hero-logo-wrap {
position:relative;
margin-bottom:48px;
opacity:0; animation:fadeUp 1.1s ease .2s forwards;
}
.hero-logo-wrap::before {
content:'';
position:absolute;
top:-80px; left:50%; transform:translateX(-50%);
width:620px; height:620px;
background:
radial-gradient(ellipse 65% 70% at 50% 25%,
rgba(255,252,225,0.6) 0%,
rgba(230,185,80,0.32) 38%,
rgba(201,162,39,0.12) 58%,
transparent 75%);
pointer-events:none;
z-index:0;
filter:blur(12px);
}
.hero-logo-wrap::after {
content:'';
position:absolute;
top:-30px; left:50%; transform:translateX(-50%);
width:420px; height:340px;
background:radial-gradient(ellipse 75% 75% at 50% 30%,
rgba(255,255,245,0.45) 0%,
rgba(255,240,180,0.18) 50%,
transparent 72%);
pointer-events:none;
z-index:0;
filter:blur(6px);
}
.hero-logo-wrap img { position:relative; z-index:1; }
.hero-catch {
opacity:0; animation:fadeUp 1.1s ease .65s forwards;
margin-bottom:24px;
width:100%;
text-align:center;
}
.hero-catch h1 {
font-family:'Noto Serif JP', serif;
font-size:clamp(1.8rem, 4vw, 2.8rem);
font-weight:500;
color:var(--white);
line-height:1.6;
letter-spacing:0.1em;
display:flex;
flex-direction:column;
align-items:center;
gap:20px;
text-align:center;
}
.hero-catch h1 .accent {
color:var(--gold);
font-weight:700;
display:inline-block;
padding-bottom:2px;
border-bottom:1px solid rgba(201,162,39,0.45);
}
.hero-sub {
opacity:0; animation:fadeUp 1.1s ease .9s forwards;
margin-bottom:52px;
max-width:600px;
}
.hero-sub p {
color:var(--text-muted);
font-size:0.9rem; font-weight:300;
line-height:2.3; letter-spacing:0.07em;
}
.hero-sub p strong {
color:rgba(255,255,255,0.88); font-weight:400;
}
.hero-cta {
opacity:0; animation:fadeUp 1.1s ease 1.1s forwards;
display:flex; gap:20px; flex-wrap:wrap; justify-content:center;
}
.btn-gold {
background:linear-gradient(135deg, var(--gold), #d9b135);
color:var(--navy-deep);
font-family:'Noto Serif JP', serif;
font-size:0.88rem; font-weight:700;
letter-spacing:0.2em;
padding:17px 46px;
text-decoration:none; display:inline-block;
transition:all .35s;
box-shadow:0 4px 22px rgba(201,162,39,0.28);
}
.btn-gold:hover { transform:translateY(-3px); box-shadow:0 10px 38px rgba(201,162,39,0.45); }
.btn-ghost {
background:transparent;
color:rgba(255,255,255,0.82);
border:1px solid rgba(255,255,255,0.32);
font-family:'Noto Serif JP', serif;
font-size:0.88rem; font-weight:300;
letter-spacing:0.2em;
padding:17px 46px;
text-decoration:none; display:inline-block;
transition:all .35s;
}
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-3px); }
section { padding:100px 52px; }
.inner { max-width:1080px; margin:0 auto; }
.sec-eyebrow {
font-family:'Cormorant Garamond', serif;
font-size:0.7rem; letter-spacing:0.48em; text-transform:uppercase;
color:var(--gold); display:block; margin-bottom:10px;
}
.sec-title {
font-family:'Noto Serif JP', serif;
font-size:clamp(1.5rem, 2.7vw, 2rem);
font-weight:500; line-height:1.75; letter-spacing:0.06em;
color:var(--navy); margin-bottom:16px;
}
.sec-title-lt { color:var(--white); }
.sec-lead {
font-size:0.9rem; color:var(--text-body);
line-height:2.3; letter-spacing:0.05em;
max-width:640px; margin-bottom:56px;
}
.sec-lead-lt { color:rgba(255,255,255,0.6); }
.u-gold { display:inline-block; border-bottom:2px solid var(--gold); padding-bottom:2px; }
.u-divider {
width:44px; height:2px;
background:linear-gradient(90deg, var(--gold), transparent);
margin:18px 0 48px;
}
#about { background:var(--cream); }
.about-cols {
display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr;
border:1px solid rgba(15,35,65,0.1);
}
.about-divider { background:rgba(15,35,65,0.1); }
.about-col { padding:44px 38px; }
.about-n {
font-family:'Cinzel', serif;
font-size:2.2rem; font-weight:600;
color:rgba(201,162,39,0.18); line-height:1; margin-bottom:16px;
}
.about-col h3 {
font-size:1rem; font-weight:700; letter-spacing:0.12em;
color:var(--navy); margin-bottom:14px;
}
.about-col p {
font-size:0.84rem; color:var(--text-body);
line-height:2.2; letter-spacing:0.04em;
}
#roadmap { background:var(--white); }
.rm-center { display:flex; flex-direction:column; align-items:center; }
.rm-pill {
background:linear-gradient(135deg, var(--gold), #d9b135);
padding:18px 64px;
font-family:'Noto Serif JP', serif; font-size:1rem; font-weight:700;
color:var(--navy-deep); letter-spacing:0.22em;
box-shadow:0 6px 28px rgba(201,162,39,0.3);
}
.rm-arrow { color:var(--gold); font-size:1.6rem; padding:12px 0; line-height:1; }
.rm-fork {
display:grid; grid-template-columns:1fr 1px 1fr;
width:100%; max-width:860px;
border:1px solid rgba(15,35,65,0.1);
background:var(--cream);
}
.rm-vdivider { background:rgba(201,162,39,0.28); }
.rm-col { padding:36px 34px; }
.rm-col-head {
padding-bottom:16px; margin-bottom:24px;
border-bottom:2px solid var(--gold);
}
.rm-col-head h3 {
font-size:0.87rem; font-weight:700;
color:var(--navy); letter-spacing:0.2em;
}
.rm-col-head p {
font-size:0.74rem; color:var(--text-body);
letter-spacing:0.08em; margin-top:5px;
}
.rm-step {
background:var(--white);
border-left:3px solid var(--gold);
padding:13px 18px; margin-bottom:10px;
transition:box-shadow .3s, transform .3s;
}
.rm-step:hover { box-shadow:4px 4px 18px rgba(201,162,39,0.18); transform:translateX(4px); }
.rm-step-name {
font-size:0.87rem; color:var(--navy);
font-weight:500; letter-spacing:0.07em;
}
.rm-step-note {
font-size:0.74rem; color:var(--text-body);
letter-spacing:0.05em; margin-top:4px;
}
.rm-step-price {
font-size:0.72rem; color:var(--gold);
font-weight:700; letter-spacing:0.08em; margin-top:4px;
}
.rm-mini-arr { text-align:center; color:var(--gold); font-size:0.95rem; padding:4px 0; }
#team { background:var(--navy); }
.rm-features {
list-style:none;
margin-top:20px; padding-top:16px;
border-top:1px solid rgba(201,162,39,0.2);
}
.rm-features li {
font-size:0.8rem; color:var(--text-body);
padding:5px 0; letter-spacing:0.06em;
display:flex; align-items:center; gap:10px;
}
.rm-features li::before { content:'✓'; color:var(--gold); font-weight:700; }
.team-grid {
display:grid; grid-template-columns:repeat(3,1fr);
gap:2px; background:rgba(201,162,39,0.12);
}
.team-grid-2col {
grid-template-columns:repeat(2,1fr);
max-width:760px;margin:0 auto 2px;
}
.team-grid-1col {
grid-template-columns:1fr;
max-width:560px;margin:0 auto;
gap:24px;background:transparent;
}
.team-grid-1col .team-card {
border:1px solid rgba(201,162,39,0.12);
}
.team-grid-3people {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:2px;background:rgba(201,162,39,0.12);
width:100%;
}
.team-grid-3people .team-card,
.team-grid-3people .team-card-textonly {
background:rgba(7,22,41,0.97);
}
.team-external-wrap {
max-width:760px;margin:24px auto 0;
}
.team-external-wrap .team-card-textonly {
background:rgba(7,22,41,0.97);
border:1px solid rgba(201,162,39,0.12);
}
.team-card {
background:rgba(7,22,41,0.97);
padding:0;
position:relative; overflow:hidden;
transition:background .4s;
}
.team-photo {
width:100%; height:0; padding-bottom:100%;
overflow:hidden; position:relative;
}
.team-photo img {
width:100%; height:100%;
object-fit:cover; object-position:center top; width:100%; height:100%; position:absolute; top:0; left:0;
filter:brightness(0.88) saturate(0.95);
transition:transform .5s;
}
.team-card:hover .team-photo img { transform:scale(1.04); }
.team-card-body {
padding:32px 36px 40px;
}
.team-card::after {
content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
background:linear-gradient(90deg, transparent, var(--gold), transparent);
opacity:0; transition:opacity .4s;
}
.team-card:hover { background:rgba(20,45,90,0.6); }
.team-card:hover::after { opacity:1; }
.team-en {
font-family:'Cormorant Garamond', serif;
font-size:0.67rem; letter-spacing:0.38em; text-transform:uppercase;
color:var(--gold); display:block; margin-bottom:8px;
}
.team-name {
font-family:'Noto Serif JP', serif;
font-size:1.52rem; font-weight:500; letter-spacing:0.08em;
color:var(--white); margin-bottom:6px;
}
.team-position {
font-size:0.79rem; letter-spacing:0.11em;
color:rgba(255,255,255,0.42);
margin-bottom:26px; padding-bottom:20px;
border-bottom:1px solid rgba(201,162,39,0.14);
line-height:2;
}
.team-position .pos-title {
display:block;
color:rgba(255,255,255,0.55);
font-weight:500;
letter-spacing:0.1em;
}
.team-position .pos-role {
display:block;
color:rgba(255,255,255,0.38);
font-size:0.74rem;
letter-spacing:0.08em;
}
.team-credentials {
font-size:0.68rem;
color:rgba(201,162,39,0.75);
letter-spacing:0.04em;
line-height:1.8;
margin-top:10px;
padding-top:10px;
border-top:1px solid rgba(255,255,255,0.06);
}
.team-skills { list-style:none; }
.team-skills li {
font-size:0.81rem; color:rgba(255,255,255,0.62);
padding:7px 0 7px 18px;
border-bottom:1px solid rgba(255,255,255,0.05);
letter-spacing:0.07em; position:relative;
}
.team-card-textonly {
display:flex;align-items:center;
}
.team-card-body-textonly {
padding:32px 36px;
text-align:left;
width:100%;
display:flex;
flex-direction:column;
justify-content:flex-start;
padding-top:calc(100% + 52px);
}
.team-skills li::before {
content:'—'; position:absolute; left:0;
color:var(--gold); font-size:0.65rem; top:9px;
}
#step1 {
background:var(--navy-deep);
position:relative; overflow:hidden;
}
#step1::before {
content:''; position:absolute; inset:0;
background:radial-gradient(ellipse 65% 65% at 28% 50%, rgba(201,162,39,0.07) 0%, transparent 68%);
}
.step1-wrap {
position:relative; z-index:1;
max-width:780px; margin:0 auto; text-align:center;
}
.step1-badge {
display:inline-block;
border:1px solid var(--gold); color:var(--gold);
font-family:'Cormorant Garamond', serif;
font-size:0.7rem; letter-spacing:0.42em; text-transform:uppercase;
padding:7px 30px; margin-bottom:32px;
}
.step1-h2 {
font-family:'Noto Serif JP', serif;
font-size:clamp(1.55rem, 3vw, 2.25rem);
font-weight:500; color:var(--white);
line-height:1.85; letter-spacing:0.07em;
margin-bottom:10px;
}
.step1-h2 em { font-style:normal; color:var(--gold); }
.step1-sub {
font-size:0.87rem; letter-spacing:0.14em;
color:rgba(255,255,255,0.45); margin-bottom:38px;
}
.step1-price-box {
display:inline-flex; align-items:baseline; gap:6px;
background:rgba(201,162,39,0.07);
border:1px solid rgba(201,162,39,0.26);
padding:20px 56px; margin:0 auto 42px;
}
.sp-price-group { display:inline-flex; align-items:baseline; gap:3px; white-space:nowrap; }
.sp-or { margin:0 8px; font-size:0.9rem; color:rgba(255,255,255,0.4); white-space:nowrap; }
.sp-time { font-family:'Cinzel',serif; font-size:1.05rem; color:var(--gold-lt); }
.sp-sep { color:rgba(201,162,39,0.38); margin:0 8px; }
.sp-num { font-family:'Cinzel',serif; font-size:1.95rem; font-weight:600; color:var(--gold); }
.sp-tax { font-size:0.76rem; color:rgba(255,255,255,0.4); font-family:'Noto Serif JP',serif; }
.step1-list {
list-style:none; text-align:left;
background:rgba(255,255,255,0.03);
border:1px solid rgba(255,255,255,0.07);
padding:30px 38px; margin-bottom:42px;
}
.step1-list li {
color:rgba(255,255,255,0.72); font-size:0.87rem;
line-height:2.3; letter-spacing:0.06em;
padding-left:22px; position:relative;
}
.step1-list li::before {
content:'◆'; position:absolute; left:0;
color:var(--gold); font-size:0.42rem; top:13px;
}
.step1-note {
font-size:0.78rem; color:rgba(255,255,255,0.3);
letter-spacing:0.1em; margin-top:18px;
}
#routes { background:var(--cream); }
.svc-grid {
display:grid; grid-template-columns:repeat(4,1fr);
border:1px solid rgba(15,35,65,0.1);
background:rgba(15,35,65,0.08); gap:1px;
}
.svc-card {
background:var(--white); padding:38px 28px;
transition:background .3s;
}
.svc-card:hover { background:var(--cream); }
.svc-n {
font-family:'Cinzel',serif; font-size:1.5rem;
color:rgba(201,162,39,0.18); line-height:1; margin-bottom:16px;
}
.svc-name {
font-family:'Noto Serif JP',serif; font-size:0.93rem; font-weight:700;
color:var(--navy); letter-spacing:0.12em; margin-bottom:16px;
padding-bottom:12px; border-bottom:1px solid rgba(201,162,39,0.24);
}
.svc-items { list-style:none; }
.svc-items li {
font-size:0.79rem; color:var(--text-body);
padding:5px 0 5px 14px; letter-spacing:0.05em; position:relative;
}
.svc-items li::before {
content:'·'; position:absolute; left:2px;
color:var(--gold); font-size:1.3rem; line-height:1.1;
}
/* ══ PRICING ══════════════════════════════════════ */
#pricing { background:var(--cream); }
.pricing-sub-title {
font-family:'Noto Serif JP',serif;
font-size:1.05rem;font-weight:700;color:var(--navy);
letter-spacing:0.1em;margin:40px 0 24px;
padding-bottom:10px;border-bottom:2px solid var(--gold);
}
.price-grid {
display:grid;grid-template-columns:repeat(3,1fr);
gap:24px;margin-bottom:8px;
}
.price-grid-2col { grid-template-columns:repeat(2,1fr); max-width:700px; }
.price-grid-3col { grid-template-columns:repeat(3,1fr); }
.price-amount-consult {
font-family:'Cinzel',serif;
font-size:1.7rem; font-weight:600; color:var(--navy);
}
.price-card {
background:var(--white);
border:1px solid rgba(15,35,65,0.1);
border-top:4px solid var(--gold);
padding:32px 28px;text-align:center;
transition:box-shadow .3s,transform .3s;
}
.price-card:hover { box-shadow:0 8px 28px rgba(201,162,39,0.18);transform:translateY(-3px); }
.price-card-pack { border-top-color:var(--navy); }
.price-plan-en {
font-family:'Cormorant Garamond',serif;
font-size:0.7rem;letter-spacing:0.3em;color:var(--gold);
text-transform:uppercase;display:block;margin-bottom:10px;
}
.price-plan-name {
font-family:'Noto Serif JP',serif;font-size:1.15rem;font-weight:700;
color:var(--navy);letter-spacing:0.08em;margin-bottom:8px;
}
.price-plan-person {
font-size:0.8rem;color:var(--text-body);letter-spacing:0.06em;margin-bottom:14px;
}
.price-plan-desc {
font-size:0.82rem;color:var(--text-body);letter-spacing:0.06em;
margin-bottom:18px;padding-bottom:18px;
border-bottom:1px solid rgba(15,35,65,0.08);
}
.price-amount {
font-family:'Cinzel',serif;font-size:1.7rem;font-weight:600;color:var(--navy);
}
.price-yen { font-size:0.85rem;font-family:'Noto Serif JP',serif;font-weight:400;margin-left:2px; }
.pricing-note {
font-size:0.8rem;color:var(--text-body);letter-spacing:0.06em;
margin:16px 0 40px;
}
@media(max-width:768px){
.price-grid,.price-grid-2col,.price-grid-3col{ grid-template-columns:1fr; }
}

#philosophy { background:var(--navy-deep); position:relative; overflow:hidden; }
#philosophy::before {
content:''; position:absolute; inset:0;
background:radial-gradient(ellipse 70% 70% at 50% 50%, rgba(201,162,39,0.05) 0%, transparent 70%);
}
.phi-inner { position:relative; z-index:1; max-width:1000px; margin:0 auto; }
.phi-grid {
display:grid; grid-template-columns:repeat(3,1fr);
gap:1px; background:rgba(201,162,39,0.12);
border:1px solid rgba(201,162,39,0.12);
margin-bottom:60px;
}
.phi-card {
background:rgba(7,22,41,0.97); padding:44px 36px; text-align:center;
}
.phi-en {
font-family:'Cinzel',serif; font-size:0.76rem; letter-spacing:0.35em;
color:var(--gold); display:block; margin-bottom:20px;
}
.phi-text {
font-family:'Noto Serif JP',serif;
font-size:0.86rem; color:rgba(255,255,255,0.7);
line-height:2.3; letter-spacing:0.06em;
}
.phi-values-wrap { text-align:center; }
.phi-values {
display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:26px;
}
.phi-tag {
border:1px solid rgba(201,162,39,0.28);
padding:11px 26px;
font-family:'Noto Serif JP',serif; font-size:0.79rem;
color:rgba(255,255,255,0.52); letter-spacing:0.2em;
transition:all .3s; cursor:default;
}
.phi-tag:hover { border-color:var(--gold); color:var(--gold); }
#message { background:var(--cream); }
.msg-layout {
display:grid; grid-template-columns:300px 2px 1fr;
gap:0 52px; max-width:980px; margin:0 auto;
align-items:start;
}
.msg-photo {
width:100%; border-radius:2px;
overflow:hidden; position:relative;
box-shadow:0 8px 36px rgba(15,35,65,0.18);
max-width:320px;
}
.msg-photo img {
width:100%; height:auto; display:block;
}
.msg-left { text-align:right; padding-top:8px; }
.msg-left-en {
font-family:'Cormorant Garamond',serif;
font-size:0.68rem; letter-spacing:0.38em; text-transform:uppercase;
color:var(--gold); display:block; margin-bottom:18px;
}
.msg-bg-text {
font-family:'Cinzel',serif; font-size:3rem; font-weight:600;
color:rgba(15,35,65,0.07); line-height:1; display:block; margin-bottom:20px;
}
.msg-vline {
background:linear-gradient(to bottom, var(--gold) 55%, transparent 100%);
min-height:340px;
}
.msg-quote {
font-family:'Noto Serif JP',serif;
font-size:clamp(1.05rem,2.3vw,1.38rem);
font-weight:500; color:var(--navy);
line-height:2.1; letter-spacing:0.08em; margin-bottom:30px;
}
.msg-quote strong {
color:var(--gold); display:block; font-size:1.1em; margin:6px 0;
}
.msg-body {
font-size:0.86rem; color:var(--text-body);
line-height:2.4; letter-spacing:0.06em; margin-bottom:34px;
}
.msg-sig {
font-family:'Noto Serif JP',serif; font-size:0.79rem; color:var(--navy);
letter-spacing:0.18em;
border-top:1px solid rgba(201,162,39,0.3); padding-top:18px;
}
.msg-sig strong { display:block; font-size:1.08rem; margin-top:5px; }
#contact { background:var(--navy-deep); position:relative; overflow:hidden; }
#contact::before {
content:''; position:absolute; inset:0;
background:linear-gradient(135deg, rgba(201,162,39,0.05) 0%, transparent 55%);
}
.contact-inner { position:relative; z-index:1; max-width:900px; margin:0 auto; text-align:center; }
.contact-lead {
font-size:0.9rem; color:rgba(255,255,255,0.6);
line-height:2.6; letter-spacing:0.07em;
margin:0 auto 52px; max-width:640px;
word-break:keep-all;
overflow-wrap:break-word;
text-align:center;
}
.contact-table {
display:grid; grid-template-columns:repeat(3,1fr);
border:1px solid rgba(201,162,39,0.18); margin-bottom:52px;
width:100%; max-width:860px; margin-left:auto; margin-right:auto;
}
.ci {
padding:28px 32px; text-align:left;
border-right:1px solid rgba(201,162,39,0.18);
border-bottom:1px solid rgba(201,162,39,0.18);
word-break:keep-all;
overflow-wrap:break-word;
min-width:0;
}
.ci:nth-child(3n) { border-right:none; }
.ci-label {
font-family:'Cormorant Garamond',serif; font-size:0.62rem;
letter-spacing:0.35em; color:var(--gold); text-transform:uppercase;
display:block; margin-bottom:10px; white-space:nowrap;
}
.ci-value {
font-size:0.82rem; color:rgba(255,255,255,0.68);
letter-spacing:0.06em; line-height:2;
word-break:break-word;
}
.ci-value a { color:rgba(255,255,255,0.68); text-decoration:none; }
.ci-value a:hover { color:var(--gold); }
.social-contact-grid {
display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;
width:100%; max-width:760px; margin:0 auto 48px;
}
.social-contact-card {
position:relative; overflow:hidden;
display:flex; flex-direction:column; align-items:center;
padding:28px 24px 24px;
border:1px solid rgba(201,162,39,0.22);
background:linear-gradient(145deg,rgba(255,255,255,0.075),rgba(255,255,255,0.025));
color:#fff; text-decoration:none;
transition:transform .3s ease,border-color .3s ease,background .3s ease;
}
.social-contact-card::before {
content:''; position:absolute; inset:0 0 auto; height:2px;
background:linear-gradient(90deg,transparent,rgba(201,162,39,0.8),transparent);
opacity:.7;
}
.social-contact-card:hover {
transform:translateY(-4px); border-color:rgba(201,162,39,0.55);
background:linear-gradient(145deg,rgba(255,255,255,0.1),rgba(255,255,255,0.035));
}
.social-contact-channel {
font-family:'Cormorant Garamond',serif; font-size:.7rem; letter-spacing:.32em;
text-transform:uppercase; color:var(--gold); margin-bottom:18px;
}
.social-logo-frame {
display:grid; place-items:center; width:88px; height:88px;
margin-bottom:16px; padding:8px; border-radius:22px; background:#fff;
}
.social-logo-frame img { display:block; width:72px; height:72px; object-fit:contain; }
.social-contact-account {
font-size:.9rem; font-weight:600; letter-spacing:.055em; line-height:1.65;
color:rgba(255,255,255,.92); overflow-wrap:anywhere;
}
.social-contact-action {
margin-top:8px; font-size:.68rem; letter-spacing:.1em; color:rgba(255,255,255,.5);
transition:color .3s ease;
}
.social-contact-card:hover .social-contact-action { color:var(--gold-light); }
.contact-btns { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
footer {
background:#040d18;
padding:34px 52px;
display:flex; align-items:center; justify-content:space-between;
flex-wrap:wrap; gap:16px;
border-top:1px solid rgba(201,162,39,0.08);
}
.ft-brand { display:flex; align-items:center; gap:12px; }
.ft-brand img { height:30px; filter:drop-shadow(0 0 10px rgba(255,235,120,0.5)) drop-shadow(0 0 20px rgba(201,162,39,0.3)) brightness(1.08) contrast(1.05) saturate(1.4); }
.ft-brand span {
font-family:'Cormorant Garamond',serif;
color:rgba(255,255,255,0.3); font-size:0.78rem; letter-spacing:0.14em;
}
.ft-copy { font-size:0.67rem; color:rgba(255,255,255,0.18); letter-spacing:0.12em; }
.reveal {
opacity:0; transform:translateY(22px);
transition:opacity .75s ease, transform .75s ease;
}
.reveal.visible { opacity:1; transform:translateY(0); }
@keyframes fadeUp { from{opacity:0;transform:translateY(28px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
@keyframes scrollPulse { 0%,100%{opacity:1;transform:scaleY(1);} 50%{opacity:0.28;transform:scaleY(0.5);} }
@media (max-width:960px) {
nav { padding:0 24px; }
.nav-links, .nav-btn { display:none; }
section { padding:68px 24px; }
.rm-features {
list-style:none;
margin-top:20px; padding-top:16px;
border-top:1px solid rgba(201,162,39,0.2);
}
.rm-features li {
font-size:0.8rem; color:var(--text-body);
padding:5px 0; letter-spacing:0.06em;
display:flex; align-items:center; gap:10px;
}
.rm-features li::before { content:'✓'; color:var(--gold); font-weight:700; }
.team-grid { grid-template-columns:1fr; }
.team-grid-3people { grid-template-columns:1fr; gap:1px; }
.team-grid-2col { grid-template-columns:1fr; max-width:100%; }
.svc-grid { grid-template-columns:repeat(2,1fr); }
.routes-grid { grid-template-columns:1fr; }
.phi-grid { grid-template-columns:1fr; }
.about-cols { grid-template-columns:1fr; }
.about-divider { height:1px; width:100%; }
.msg-layout { grid-template-columns:1fr; }
.msg-vline { display:none; }
.msg-left { text-align:center; margin-bottom:32px; }
.msg-photo { max-width:280px; margin:0 auto; }
.rm-fork { grid-template-columns:1fr; }
.rm-vdivider { width:100%; height:1px; }
.contact-table { grid-template-columns:1fr 1fr; }
.ci { }
.ci:nth-child(2n) { border-right:none; }
.ci:last-child { border-bottom:none; }
footer { flex-direction:column; text-align:center; }
.ft-brand { justify-content:center; }
}

/* ══ BLOG ═══════════════════════════════════════════ */
#blog { background:var(--cream); }
.blog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:40px; }
.blog-card { background:var(--white); border:1px solid rgba(15,35,65,0.1); overflow:hidden; transition:box-shadow 0.3s,transform 0.3s; }
.blog-card:hover { box-shadow:0 8px 32px rgba(15,35,65,0.12); transform:translateY(-4px); }
.blog-card-link { display:block; height:100%; color:inherit; text-decoration:none; }
.blog-card-img { width:100%; height:200px; object-fit:cover; display:block; }
.blog-card-body { padding:24px 28px 28px; }
.blog-date { font-family:'Cormorant Garamond',serif; font-size:0.7rem; letter-spacing:0.3em; color:var(--gold); display:block; margin-bottom:10px; }
.blog-tag { display:inline-block; font-size:0.66rem; background:var(--navy); color:var(--white); padding:2px 10px; margin-bottom:12px; letter-spacing:0.1em; }
.blog-title { font-size:1.05rem; font-weight:700; color:var(--navy); letter-spacing:0.06em; margin-bottom:10px; line-height:1.6; }
.blog-excerpt { font-size:0.82rem; color:var(--text-body); line-height:1.9; letter-spacing:0.04em; }
.blog-formula { background:var(--navy); color:var(--white); padding:14px 20px; margin:16px 0; text-align:center; font-size:1rem; letter-spacing:0.15em; }
.blog-formula span { color:var(--gold-lt); font-weight:700; }
.blog-whiteboard { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0; }
.blog-whiteboard img { width:100%; object-fit:cover; border:1px solid rgba(15,35,65,0.1); }
.home-blog { background:var(--cream); }
.home-blog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.blog-summary-card { height:100%; }
.blog-summary { font-size:0.8rem; line-height:1.9; color:var(--text-body); margin-bottom:18px; }
.blog-read-more { display:inline-block; color:var(--navy); font-size:0.73rem; font-weight:600; letter-spacing:0.12em; border-bottom:1px solid var(--gold); padding-bottom:3px; }
.blog-archive-action { margin-top:42px; text-align:center; }
.btn-outline-navy { display:inline-block; border:1px solid var(--navy); color:var(--navy); padding:12px 34px; text-decoration:none; font-size:0.78rem; letter-spacing:0.14em; transition:.25s; }
.btn-outline-navy:hover { background:var(--navy); color:var(--white); }
.blog-archive { padding:78px 0 100px; background:var(--cream); }
.archive-grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:0; }
.article-header { background:var(--navy-deep); color:var(--white); padding:92px 24px 74px; }
.article-header-inner { max-width:900px; margin:0 auto; text-align:center; }
.article-back { display:inline-block; color:var(--gold); font-family:'Cormorant Garamond',serif; font-size:.7rem; letter-spacing:.3em; text-decoration:none; text-transform:uppercase; margin-bottom:24px; }
.article-header .blog-date { margin-bottom:12px; }
.article-header h1 { font-size:clamp(1.65rem,4vw,2.7rem); font-weight:500; line-height:1.7; letter-spacing:.06em; margin-top:10px; }
.article-main { background:var(--cream); padding:72px 24px 100px; }
.article-content { max-width:860px; margin:0 auto; background:var(--white); border:1px solid rgba(15,35,65,.1); padding:clamp(24px,5vw,58px); }
.article-hero { width:100%; max-height:480px; object-fit:cover; display:block; margin-bottom:42px; }
.article-body { color:var(--text-body); font-size:.94rem; line-height:2.15; letter-spacing:.04em; }
.article-body .blog-formula { margin:24px 0; }
.article-body .blog-whiteboard { margin:28px 0; }
.article-nav { margin-top:52px; padding-top:24px; border-top:1px solid rgba(15,35,65,.12); display:flex; justify-content:space-between; gap:20px; }
.article-nav a { color:var(--navy); text-decoration-color:var(--gold); text-underline-offset:4px; font-size:.8rem; }
.article-cta { margin-top:56px; padding:38px 30px; background:var(--navy-deep); color:var(--white); text-align:center; border:1px solid rgba(201,162,39,.25); }
.article-cta .sec-eyebrow { margin-bottom:10px; }
.article-cta h2 { font-size:1.35rem; font-weight:500; letter-spacing:.1em; margin-bottom:10px; }
.article-cta p { color:rgba(255,255,255,.62); font-size:.82rem; line-height:1.9; margin-bottom:24px; }
.article-cta-actions { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.article-cta-actions a { min-width:220px; }
@media(max-width:900px){ .blog-grid{ grid-template-columns:1fr; } .blog-whiteboard{ grid-template-columns:1fr; } }

img{max-width:100%;height:auto}
.nav-toggle{display:none;width:44px;height:44px;border:1px solid rgba(201,162,39,.35);background:transparent;padding:10px;cursor:pointer}
.nav-toggle span{display:block;height:1px;background:var(--gold);margin:5px 0;transition:.25s}
.mobile-nav-panel{display:none}
.btn-line{display:inline-flex;align-items:center;justify-content:center;background:#06c755;color:#fff;text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.1em;padding:13px 24px}
.ft-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
.ft-links a{color:rgba(255,255,255,.5);font-size:.68rem;text-decoration:none;letter-spacing:.06em}
.ft-links a:hover{color:var(--gold)}
.subpage{padding-top:68px;background:var(--cream)}
.subpage-header{background:var(--navy-deep);padding:86px 24px 70px;text-align:center;color:#fff}
.subpage-header h1{font-size:clamp(1.7rem,4vw,2.8rem);font-weight:500;letter-spacing:.1em;margin-bottom:12px}
.subpage-header p{color:rgba(255,255,255,.62);font-size:.88rem;letter-spacing:.08em}
.blog-page{padding-top:76px}
.legal-main{max-width:980px;margin:0 auto;padding:72px 24px 96px}
.legal-card{background:#fff;border:1px solid rgba(15,35,65,.1);padding:clamp(24px,5vw,56px)}
.legal-table>div{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid rgba(15,35,65,.12)}
.legal-table>div:first-child{border-top:1px solid rgba(15,35,65,.12)}
.legal-table dt{background:var(--cream);font-weight:600;padding:18px 20px;letter-spacing:.05em}
.legal-table dd{padding:18px 22px;color:var(--text-body)}
.legal-card a{color:var(--navy);text-decoration-color:var(--gold);text-underline-offset:3px}
.legal-card section{padding:0;margin:0 0 34px}
.legal-card h2{font-size:1.05rem;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(201,162,39,.35)}
.legal-card p,.legal-card li{font-size:.9rem;color:var(--text-body);line-height:2}
.legal-card ul{padding-left:1.4em}
.legal-updated{text-align:right;margin-top:30px}
@media(max-width:1200px){.nav-links{gap:18px}.nav-links a{font-size:.68rem}nav{padding:0 28px}}
@media(max-width:960px){
  .nav-toggle{display:block}.mobile-nav-panel{display:flex;position:absolute;top:68px;left:0;right:0;background:rgba(7,22,41,.99);border-top:1px solid rgba(201,162,39,.2);padding:20px 24px 26px;flex-direction:column;gap:0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s}
  .mobile-nav-panel.open{opacity:1;visibility:visible;transform:none}
  .mobile-nav-panel>a{color:rgba(255,255,255,.78);text-decoration:none;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.82rem;letter-spacing:.08em}
  .mobile-nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.mobile-nav-actions a{padding:12px 8px;text-align:center}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .contact-table{grid-template-columns:1fr 1fr}.ci:nth-child(3n){border-right:1px solid rgba(201,162,39,.18)}.ci:nth-child(2n){border-right:none}.ci:last-child{grid-column:1/-1;border-right:none}
  .home-blog-grid,.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  nav{height:62px;padding:0 16px}.nav-logo img{height:24px}.nav-logo-text{display:none}.subpage{padding-top:62px}.mobile-nav-panel{top:62px}
  #hero{padding:92px 20px 64px;min-height:auto}.hero-logo-wrap{margin-bottom:32px}.hero-cta,.contact-btns{width:100%;flex-direction:column}.hero-cta a,.contact-btns a{width:100%;text-align:center}
  section{padding:58px 18px}.sec-title{font-size:clamp(1.45rem,8vw,2rem)}.sec-lead{font-size:.84rem}
  .step1-price-box{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:360px;padding:22px 16px;margin-left:auto;margin-right:auto}.step1-price-box>.sp-sep{display:none}.sp-time{font-size:.9rem}.sp-num{font-size:1.8rem}.sp-or{margin:0;font-size:.76rem}.sp-price-group{justify-content:center}
  .svc-grid,.contact-table,.social-contact-grid{grid-template-columns:1fr}.ci,.ci:nth-child(2n),.ci:nth-child(3n){border-right:none}.ci:last-child{grid-column:auto}.ci{padding:22px}.social-contact-grid{max-width:390px;gap:14px;margin-bottom:38px}.social-contact-card{padding:24px 18px 22px}.social-logo-frame{width:80px;height:80px;border-radius:20px}.social-logo-frame img{width:64px;height:64px}.price-grid,.price-grid-3col{grid-template-columns:1fr}
  .blog-card-body{padding:20px}.blog-grid,.home-blog-grid,.archive-grid{grid-template-columns:1fr;margin-top:28px}.blog-formula{letter-spacing:.05em;padding:12px 10px}.blog-archive{padding:46px 0 72px}.article-main{padding:42px 14px 72px}.article-content{padding:22px 18px}.article-header{padding:62px 18px 52px}.article-hero{margin-bottom:28px}.article-body{font-size:.86rem}.article-cta{padding:30px 16px}.article-cta-actions{flex-direction:column}.article-cta-actions a{width:100%;min-width:0}.article-nav{flex-direction:column}
  .subpage-header{padding:62px 18px 50px}.legal-main{padding:42px 14px 70px}.legal-card{padding:20px 16px}.legal-table>div{grid-template-columns:1fr}.legal-table dt{padding:12px 14px}.legal-table dd{padding:14px}.legal-updated{text-align:left}
  footer{padding:30px 18px}.ft-links{gap:10px 16px}
}
@media(max-width:390px){.mobile-nav-actions{grid-template-columns:1fr}.btn-gold,.btn-ghost{padding-left:14px;padding-right:14px}.hero-sub br{display:none}}
