/* WFC E: straight edges, equal services, visible commitment, shared footer. */
:root { --blue:#0068dc; }
.button,.service-card,.plan,.contact-form-panel,.field input,.field select,.field textarea,.profile img,.contact-topics span { border-radius:0; }
.header { background:#fff; }
.button:hover { transform:none; }
.hero-scene { transition:opacity 1.4s ease-in-out,visibility 1.4s; }
.hero-editorial:focus-visible { outline:3px solid #f2a900; outline-offset:-4px; }
.message-section { background:var(--navy); color:#fff; }
.message-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:clamp(40px,7vw,120px); align-items:center; }
.message-copy { max-width:48em; }
.message-copy .section-label { color:#a8d3ff; margin-bottom:16px; }
.message-copy .section-title { font-size:clamp(36px,4vw,58px); }
.message-copy > p { color:#dbe6f3; font-size:16px; line-height:2; }
.message-copy .message-lead { font-size:clamp(20px,2.2vw,30px); color:white; font-family:var(--serif); margin-top:8px; }
.message-copy .message-emphasis { font-size:clamp(22px,2.3vw,32px); line-height:1.65; color:white; margin:32px 0 24px; }
.message-copy .textlink { margin-top:24px; color:white; }
.representative-large { margin:0; width:100%; max-width:460px; justify-self:end; }
.representative-large img { width:100%; height:auto; max-height:610px; object-fit:cover; object-position:50% 15%; }
.representative-large figcaption { border-top:1px solid #526e87; padding-top:18px; margin-top:18px; }
.representative-large figcaption span { font-size:13px; display:block; color:#dbe6f3; }
.representative-large figcaption strong { display:block; font-family:var(--serif); font-size:30px; font-weight:500; margin-top:4px; }
.sns-featured { background:var(--pale); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:40px 0; }
.sns-featured h2 { font-family:var(--serif); font-size:26px; margin:6px 0; }
.sns-featured .sns-links { display:grid; grid-template-columns:repeat(4,minmax(94px,1fr)); gap:16px; }
.sns-featured .sns-links a { min-width:100px; min-height:104px; padding:16px; background:#fff; display:flex; flex-direction:column; gap:8px; border:1px solid #b9cadb; }
.sns-featured .sns-links a:hover { background:#e5effa; border-color:var(--blue); }
.sns-featured .sns-links img { width:34px; height:34px; }
.sns-featured .sns-arrow { display:none; }
.services-equal { background:white; color:var(--ink); padding-top:clamp(56px,6vw,104px); }
.services-equal .services-intro { border:0; padding-top:0; }
.services-equal .services-intro p { color:var(--muted); }
.services-equal .services-intro .section-label { color:var(--blue); }
.equal-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.service-tile { min-width:0; border:1px solid var(--line); display:flex; flex-direction:column; background:white; }
.service-visual { position:relative; display:block; }
.service-visual:focus-visible { outline:3px solid #f2a900; outline-offset:-4px; }
.service-visual img { aspect-ratio:16/10; width:100%; height:auto; object-fit:cover; }
.service-visual > span { position:absolute; bottom:0; left:0; color:white; background:var(--navy); padding:10px 20px; font:28px Georgia,serif; }
.service-tile-body { padding:clamp(20px,2.1vw,34px); display:flex; flex-direction:column; flex:1; }
.service-tile h3 { font-size:clamp(23px,2vw,31px); font-family:var(--serif); min-height:3em; margin-bottom:20px; }
.service-tile p { color:var(--muted); font-size:16px; line-height:1.9; }
.service-tile .service-category { font-size:12px; margin-bottom:10px; }
.service-tile .service-question { color:var(--navy); font-size:17px; font-weight:700; margin:0 0 14px; min-height:3.8em; }
.service-tile ul { padding-left:1.2em; margin:22px 0 28px; font-size:15px; }
.tile-links { margin-top:auto; display:grid; gap:12px; }
.tile-links .button { font-size:14px; gap:12px; padding:14px 16px; }
.tile-links .textlink { justify-self:start; font-size:14px; }
.outcomes { background:var(--pale); }
.outcome-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:40px; }
.outcome-list article { border-top:2px solid var(--navy); padding-top:24px; }
.outcome-list h3 { font-family:var(--serif); font-size:25px; margin-bottom:16px; }
.outcome-list p { font-size:16px; color:var(--muted); }
.outcome-list a { margin-top:20px; font-size:14px; }
.company-bottom { border-top:1px solid var(--line); }
.company-summary { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; }
.company-summary > div > p:not(.section-label) { margin-top:18px; }
.company-summary a { margin-top:18px; }
.company-summary dl { margin:0; }
.company-summary dl > div { display:grid; grid-template-columns:100px 1fr; gap:24px; padding:16px 0; border-bottom:1px solid var(--line); font-size:15px; }
.company-summary dt { color:var(--muted); }
.company-summary dd { margin:0; }
.footer-social { display:flex; align-items:center; gap:28px; margin-top:32px; padding-top:24px; border-top:1px solid #35536f; flex-wrap:wrap; }
.footer-social > p { color:#fff; font-size:15px; margin:0; }
.footer-social .sns-links { gap:22px; }
.footer-social .sns-links img { filter:invert(1); }
.footer-social .sns-links a,.footer-social .sns-links a:visited { color:white; }
.footer-social .sns-arrow { color:#c7d8e9; }
.footer-social > span { font-size:13px; color:#c7d8e9; }
.footer-nav { max-width:600px; }
.footer .copyright { margin-top:24px; }
.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; font-size:13px; padding:22px 0; color:var(--muted); }
.breadcrumbs > span { display:inline-flex; align-items:center; min-height:44px; }
.breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; }
.detail-hero { background:var(--navy); color:white; padding:56px 0; }
.detail-hero-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; }
.detail-hero .section-label { color:#a8d3ff; }
.detail-hero h1 { color:white; font:500 clamp(20px,2vw,28px)/1.6 var(--sans); margin:10px 0 28px; letter-spacing:0; }
.detail-hero .detail-catch { font:500 clamp(30px,3.4vw,48px)/1.55 var(--serif); margin:0 0 24px; }
.detail-hero p:not(.detail-catch):not(.section-label) { color:#dbe6f3; font-size:16px; max-width:44em; }
.detail-hero .button { margin-top:28px; }
.detail-hero figure { margin:0; }
.detail-hero img { width:100%; aspect-ratio:4/3; object-fit:cover; height:auto; }
.detail-hero figcaption { font-size:12px; color:#c7d8e9; margin-top:8px; }
.detail-nav { display:flex; flex-wrap:wrap; border-bottom:1px solid var(--line); gap:0 28px; padding:18px 0; }
.detail-nav a { min-height:44px; display:flex; align-items:center; font-size:15px; font-weight:700; }
.detail-reading { max-width:1000px; }
.detail-start h2 { font-family:var(--serif); font-size:clamp(28px,3vw,42px); margin:12px 0 24px; }
.detail-start p { font-size:16px; }
.detail-page .detail-note { font-size:14px; color:var(--muted); margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.flow-section { background:var(--pale); }
.steps { padding:0; list-style:none; margin:40px 0 0; }
.steps > li { padding:32px 0; border-top:1px solid #a7bccc; }
.step-heading { display:flex; gap:24px; align-items:baseline; margin-bottom:24px; }
.step-heading span { font-size:13px; font-weight:700; color:var(--blue); white-space:nowrap; }
.step-heading h3 { font-size:26px; font-family:var(--serif); }
.role-pair { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.role-pair > div,.detail-plans .role-pair > article { padding:24px; background:white; }
.role-pair h4 { margin:0 0 12px; color:var(--blue); font-size:16px; }
.role-pair p { font-size:16px; }
.step-output { margin-top:16px; font-size:15px; }
.step-output span { display:inline-block; font-size:13px; font-weight:700; margin-right:20px; }
.detail-plans .role-pair { margin-top:32px; }
.detail-plans .role-pair > article { background:var(--pale); }
.detail-plans h3 { font-size:22px; margin-bottom:16px; }
.daily-section { background:#edf4fa; }
.daily-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:40px; }
.daily-flow article { border-top:2px solid #6486a5; padding-top:24px; }
.daily-when { font-size:14px; color:var(--blue); }
.daily-flow h3 { font-size:20px; margin:8px 0 14px; }
.daily-flow p:not(.daily-when) { color:var(--muted); font-size:16px; }
.conversation { margin-top:48px; background:white; padding:32px; }
.conversation h3 { font-size:22px; }
.conversation .example-note { font-size:13px; color:var(--muted); margin:8px 0 24px; }
.conversation > div { display:grid; grid-template-columns:110px 1fr; gap:24px; padding:20px 0; border-top:1px solid var(--line); }
.conversation strong { color:var(--blue); font-size:15px; }
.conversation p { font-size:16px; }
.deliverables dl { margin:32px 0 0; }
.deliverables dl > div { display:grid; grid-template-columns:1fr 2fr; gap:40px; border-top:1px solid var(--line); padding:28px 0; }
.deliverables dt { font-size:21px; font-weight:700; }
.deliverables dd { margin:0; font-size:16px; color:var(--muted); }
.detail-faq { background:var(--pale); }
.detail-faq h2 { margin-bottom:32px; }
.detail-faq details { border-top:1px solid #b7c9d8; padding:0; }
.detail-faq details:last-child { border-bottom:1px solid #b7c9d8; }
.detail-faq summary { cursor:pointer; padding:24px 32px 24px 0; font-size:17px; font-weight:700; }
.detail-faq details p { color:var(--muted); font-size:16px; padding:0 0 24px; }
.related-services { padding-top:40px; padding-bottom:48px; display:flex; flex-wrap:wrap; gap:20px 36px; align-items:center; }
.related-services h2 { font-size:20px; }
@media(max-width:1100px) {
 .message-grid { gap:36px; grid-template-columns:1.2fr .8fr; }
 .representative-large { max-width:360px; }
 .sns-featured .sns-inner { display:block; }
 .sns-featured .sns-links { margin-top:24px; }
 .equal-service-grid { gap:16px; }
 .service-tile-body { padding:22px 18px; }
 .service-tile h3 { font-size:23px; }
 .tile-links .button { font-size:13px; gap:6px; padding:14px 10px; }
 .detail-hero-grid { gap:32px; }
 .outcome-list { gap:24px; }
}
@media(max-width:900px) {
 .equal-service-grid { grid-template-columns:1fr; grid-auto-rows:1fr; }
 .service-tile { display:grid; grid-template-columns:.8fr 1.2fr; }
 .service-visual img { height:100%; aspect-ratio:auto; object-position:center; }
 .service-tile h3,.service-tile .service-question { min-height:0; }
 .outcome-list { grid-template-columns:1fr; gap:32px; }
 .company-summary { grid-template-columns:1fr; gap:24px; }
 .detail-hero-grid { grid-template-columns:1fr; }
 .detail-hero img { max-height:360px; aspect-ratio:16/9; }
 .daily-flow { grid-template-columns:1fr; }
 .role-pair { gap:20px; }
}
@media(max-width:760px) {
 .message-grid { display:flex; flex-direction:column; gap:32px; }
 .message-copy { width:100%; }
 .message-copy .section-title { font-size:38px; }
 .message-copy .message-emphasis { font-size:23px; }
 .representative-large { max-width:400px; width:100%; align-self:center; }
 .representative-large img { max-height:480px; }
 .sns-featured .sns-links { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
 .sns-featured .sns-links a { min-width:0; min-height:94px; padding:12px 4px; font-size:12px; }
 .sns-featured .sns-links img { width:30px; height:30px; }
 .sns-featured h2 { font-size:24px; }
 .services-equal { padding-top:56px; }
 .services-equal .services-intro { padding:0; }
 .service-tile { display:flex; }
 .service-visual img { height:auto; aspect-ratio:16/9; }
 .service-tile-body { padding:24px; }
 .service-tile h3 { font-size:26px; }
 .tile-links .button { padding:16px; font-size:15px; }
 .company-summary dl > div { grid-template-columns:76px 1fr; gap:16px; }
 .footer-social { display:block; }
 .footer-social .sns-links { margin:16px 0; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .footer-social .sns-links a { border-color:#35536f; }
 .footer-social > span { display:block; }
 .detail-hero { padding:32px 0; }
 .detail-hero h1 { font-size:20px; }
 .detail-hero .detail-catch { font-size:30px; }
 .detail-nav { gap:4px 20px; }
 .detail-nav a { font-size:14px; }
 .step-heading { display:block; }
 .step-heading h3 { font-size:25px; margin-top:8px; }
 .role-pair { grid-template-columns:1fr; }
 .role-pair > div { padding:20px; }
 .step-output span { display:block; margin-bottom:6px; }
 .conversation { padding:24px 20px; }
 .conversation > div { display:block; }
 .conversation strong { display:block; margin-bottom:8px; }
 .deliverables dl > div { display:block; }
 .deliverables dd { margin-top:12px; }
 .detail-faq summary { font-size:16px; }
}
@media(prefers-reduced-motion:reduce){.hero-scene{transition:none}}

.service-tile h3 span { display:block; }
.detail-faq h2 span { display:inline-block; }

/* Willie.dot: the flyer character welcomes visitors at consultation. */
.contact-mascot{display:flex;align-items:center;gap:20px;margin:28px 0 0;max-width:100%}
.contact-mascot img{display:block;width:200px;height:auto;flex:0 0 auto;object-fit:contain}
.contact-mascot figcaption{min-width:0;color:var(--ink);line-height:1.7}
.contact-mascot strong{display:block;font-size:22px;font-weight:700;letter-spacing:.02em}
.contact-mascot figcaption span{display:block;font-size:12px;color:var(--muted)}
@media(max-width:760px){.contact-mascot{gap:12px;margin-top:20px}.contact-mascot img{width:140px}.contact-mascot strong{font-size:20px}.contact-mascot figcaption span{font-size:11px}}
