@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@400;600;700;800;900&display=swap');

:root {
    --navy: #123b62;
    --deep: #0e2f4e;
    --yellow: #ffcc53;
    --cream: #fffaf0;
    --blue: #d8f1f8;
    --ink: #213e53;
    --muted: #667783
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    color: var(--ink);
    font-family: 'DM Sans', sans-serif;
    background: #fffdf8
}

a {
    color: inherit;
    text-decoration: none
}

button {
    font: inherit
}

.shell {
    width: min(1160px, calc(100% - 44px));
    margin: auto
}

.site-header {
    background: #fffdf8;
    position: sticky;
    top: 0;
    z-index: 20;
    box-shadow: 0 2px 14px #15395410
}

.nav {
    height: 83px;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--navy)
}

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--yellow);
    font-size: 25px;
    transform: rotate(-20deg)
}

.brand-text {
    font-family: Nunito, sans-serif;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: -.8px;
    line-height: 1
}

.brand-text b {
    display: block;
    letter-spacing: 1.3px;
    font-size: 13px;
    text-transform: uppercase;
    margin-top: 4px
}

.navigation {
    display: flex;
    align-items: center;
    gap: 34px;
    font-size: 14px;
    font-weight: 700
}

.navigation>a:hover {
    color: #b47611
}

.nav-cta {
    background: var(--navy);
    color: white;
    padding: 13px 19px;
    border-radius: 8px
}

.navigation .nav-cta:hover {
    color: white;
    background: #21567f
}

.menu-toggle {
    display: none;
    background: transparent;
    border: 0;
    font-size: 26px;
    color: var(--navy)
}

.hero {
    position: relative;
    overflow: hidden;

    background:
        radial-gradient(
            circle at 82% 18%,
            rgba(255, 218, 91, 0.95) 0%,
            rgba(255, 218, 91, 0.35) 17%,
            transparent 35%
        ),
        linear-gradient(
            135deg,
            #fff7df 0%,
            #ffe4a8 35%,
            #ffbd91 70%,
            #ff9e91 100%
        );
}

.hero::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    top: -190px;
    right: -100px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
    pointer-events: none;
}

.hero-inner {
    position: relative;
    z-index: 1;
}

.hero-inner {
    min-height: 575px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 30px
}

.hero-copy {
    position: relative;
    z-index: 2;
    padding: 62px 0 80px
}

.eyebrow,
.kicker {
    color: #9c6d15;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2.2px
}

.sun-icon {
    font-size: 20px;
    color: #f4ae25;
    margin-right: 7px
}

h1,
h2,
h3 {
    font-family: Nunito, sans-serif;
    color: var(--navy)
}

h1 {
    font-size: clamp(46px, 5.1vw, 77px);
    line-height: 1.09;
    letter-spacing: -2.7px;
    margin: 23px 0
}

h1 em,
h2 em {
    font-style: normal;
    color: #d59a2b
}

.hero-sub {
    font-size: 19px;
    line-height: 1.7;
    max-width: 470px
}

.hero-tagline {
    font-weight: 800;
    font-style: italic;
    color: #315b75;
    margin: 25px 0
}

.button {
    display: inline-flex;
    align-items: center;
    gap: 23px;
    font-weight: 800;
    border-radius: 9px;
    padding: 16px 24px;
    font-size: 15px
}

.button.primary {
    background: var(--navy);
    color: white;
    box-shadow: 0 8px 0 #123b6220
}

.button:hover {
    transform: translateY(-2px)
}

.hero-note {
    font-size: 12px;
    color: #5a7789;
    margin-top: 22px
}

.hero-art {
    height: 500px;
    position: relative;
    align-self: end
}

.hero-sun {
    position: absolute;
    top: 57px;
    right: 95px;
    background: #ffd572;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    box-shadow: 0 0 0 17px #ffd57232
}

.hero-cloud {
    position: absolute;
    background: #fff;
    border-radius: 50px;
    width: 115px;
    height: 28px;
    opacity: .9
}

.hero-cloud:before {
    content: "";
    position: absolute;
    background: #fff;
    border-radius: 50%;
    width: 65px;
    height: 45px;
    bottom: 4px;
    left: 19px
}

.c1 {
    top: 85px;
    left: 40px
}

.c2 {
    top: 180px;
    right: 0;
    transform: scale(.75)
}

.hill {
    position: absolute;
    bottom: 0;
    width: 130%;
    height: 160px;
    border-radius: 50% 50% 0 0
}

.h1 {
    background: #a8d4bd;
    left: -12%;
    bottom: -70px;
    transform: rotate(-7deg)
}

.h2 {
    background: #8ec4a5;
    left: 32%;
    bottom: -100px;
    transform: rotate(7deg)
}

.tower {
    position: absolute;
    bottom: 80px;
    left: 46%;
    width: 92px;
    height: 285px;
    z-index: 2;
    background: #d3a36c;
    border: 7px solid #9b6d47;
    border-radius: 6px 6px 0 0;
    box-shadow: inset 0 0 0 7px #f1d6a8
}

.tower-tip {
    position: absolute;
    width: 20px;
    height: 60px;
    background: #9b6d47;
    top: -90px;
    left: 29px;
    clip-path: polygon(50% 0, 100% 100%, 0 100%)
}

.tower-top {
    position: absolute;
    width: 112px;
    height: 30px;
    background: #a4774d;
    top: -30px;
    left: -17px;
    border-radius: 4px
}

.tower-face {
    position: absolute;
    top: 23px;
    left: 12px;
    background: #fff7dd;
    border: 5px solid #9b6d47;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    text-align: center;
    font-size: 42px;
    line-height: 43px;
    color: #a4774d
}

.tower-base {
    position: absolute;
    bottom: 0;
    left: 16px;
    width: 45px;
    height: 130px;
    background: repeating-linear-gradient(90deg, #ad8159 0 8px, #dfba88 8px 17px)
}

.hero-arch {
    position: absolute;
    bottom: 75px;
    background: #c67d6c;
    border: 7px solid #985d56;
    width: 148px;
    height: 200px;
    border-radius: 85px 85px 0 0;
    z-index: 2
}

.arch1 {
    left: 8%;
    transform: rotate(-5deg)
}

.arch2 {
    right: 5%;
    width: 125px;
    height: 160px;
    background: #d9a878;
    transform: rotate(5deg)
}

.arch-window {
    position: absolute;
    inset: 45px 23px 0;
    border-radius: 65px 65px 0 0;
    background: #e7f6f8;
    border: 7px solid #985d56
}

.plane {
    position: absolute;
    top: 38px;
    left: 37%;
    font-size: 59px;
    color: #e49b43;
    transform: rotate(24deg);
    z-index: 4
}

.flight-line {
    position: absolute;
    top: 95px;
    left: 26%;
    height: 80px;
    width: 120px;
    border: 3px dashed #dfa953;
    border-right: 0;
    border-top: 0;
    border-radius: 50%;
    transform: rotate(-22deg)
}

.hero-art-caption {
    position: absolute;
    bottom: 38px;
    right: 10px;
    z-index: 4;
    font-family: Nunito;
    font-weight: 900;
    font-size: 14px;
    letter-spacing: 2px;
    color: #fff
}

.hero-art-caption span {
    color: var(--yellow)
}

.hero-bottom-wave {
    height: 20px;
    background: #fffdf8;
    clip-path: polygon(0 45%, 20% 100%, 50% 30%, 80% 85%, 100% 35%, 100% 100%, 0 100%);
    position: absolute;
    bottom: 0;
    width: 100%
}

.section {
    padding: 94px 0
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px
}

h2 {
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.16;
    letter-spacing: -1.4px;
    margin: 12px 0 15px
}

.section-heading p,
.journey-copy p,
.about-inner p {
    line-height: 1.8;
    color: #617380;
    font-size: 16px
}

.section-stamp {
    transform: rotate(9deg);
    border: 3px dashed #e6b951;
    border-radius: 50%;
    padding: 23px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 900;
    color: #b07b24;
    line-height: 1.7;
    white-space: nowrap
}

.section-stamp b {
    font-size: 10px
}

.book-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px
}

.book-card {
    border-radius: 15px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 32px #183e5619;
    transition: transform .2s
}

.book-card:hover {
    transform: translateY(-5px)
}

.cover-wrap {
    padding: 18px 18px 0;
    background: #eaf3ef;
    position: relative
}

.book-card:nth-child(2) .cover-wrap {
    background: #f4e7d7
}

.book-card:nth-child(3) .cover-wrap {
    background: #f4e4ed
}

.book-card:nth-child(4) .cover-wrap {
    background: #e1eaf3
}

.cover-wrap img {
    width: 100%;
    height: auto;
    display: block;
    box-shadow: 0 5px 15px #0002;
    border-radius: 3px 3px 0 0
}

.city-label {
    position: absolute;
    top: 27px;
    left: 27px;
    background: #fffdf8;
    color: var(--navy);
    padding: 6px 9px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px
}

.book-info {
    padding: 18px 20px 23px
}

.book-info h3 {
    margin: 0;
    font-size: 22px
}

.book-info p {
    color: #6b7b85;
    font-size: 13px;
    margin: 8px 0 16px
}

.availability {
    font-size: 12px;
    color: #b07b24;
    font-weight: 800
}

.coming-soon {
    margin-top: 35px;
    border: 2px dashed #e6d5a9;
    background: #fffaf0;
    padding: 18px 25px;
    border-radius: 14px;
    display: flex;
    gap: 18px;
    align-items: center
}

.japan-symbol {
    font-size: 42px;
    color: #e6a0a9
}

.coming-soon b {
    font-family: Nunito;
    color: var(--navy);
    font-size: 19px
}

.coming-soon p {
    margin: 4px 0 0;
    color: #7b7b7b;
    font-size: 13px
}

.soon-pill {
    margin-left: auto;
    background: #f8e5b5;
    padding: 8px 13px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 900;
    color: #876218;
    letter-spacing: 1px
}

.journey-section {
    background: #f1f6f1
}

.journey-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 95px;
    align-items: center
}

.journey-visual {
    min-height: 425px;
    position: relative
}

.postcard {
    position: absolute;
    width: 235px;
    background: white;
    padding: 12px 12px 20px;
    box-shadow: 0 16px 35px #1539542b;
    transform: rotate(-9deg);
    top: 16px;
    left: 10%;
    z-index: 2
}

.postcard img {
    width: 100%;
    height: 290px;
    object-fit: cover;
    object-position: top
}

.postcard-label {
    display: block;
    text-align: center;
    font-size: 11px;
    letter-spacing: 2px;
    font-weight: 900;
    color: var(--navy);
    padding: 5px 0 12px
}

.postcard.second {
    transform: rotate(10deg);
    left: 46%;
    top: 65px;
    z-index: 1
}

.photo-placeholder {
    height: 290px;
    background: linear-gradient(#d4eef6, #b6d8cb);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    color: var(--navy)
}

.photo-placeholder span {
    font-size: 90px;
    color: #e3a94e
}

.photo-placeholder strong {
    font-family: Nunito;
    font-size: 19px
}

.tape {
    position: absolute;
    width: 72px;
    height: 22px;
    background: #e6c879a8;
    z-index: 4;
    transform: rotate(-22deg);
    left: 9%;
    top: 5px
}

.tape2 {
    left: 73%;
    top: 59px;
    transform: rotate(25deg)
}

.journey-copy p {
    max-width: 460px
}

.coming-label {
    display: inline-block;
    background: #fff;
    border-radius: 30px;
    padding: 12px 18px;
    font-weight: 800;
    font-size: 13px;
    color: #b07b24;
    margin-top: 12px
}

.about-inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    align-items: center;
    gap: 70px;
    max-width: 920px
}

.about-illustration {
    height: 280px;
    border-radius: 50%;
    background: #e6f2f4;
    position: relative;
    display: grid;
    place-items: center
}

.feather {
    font-size: 140px;
    color: #d4a346;
    transform: rotate(-25deg)
}

.sparkle {
    position: absolute;
    color: #f4bd55;
    font-size: 40px
}

.s1 {
    top: 34px;
    right: 35px
}

.s2 {
    bottom: 35px;
    left: 27px
}

.s3 {
    bottom: 55px;
    right: 26px
}

.signature {
    font-family: Nunito;
    font-style: italic;
    font-weight: 900;
    color: #c18d30 !important;
    font-size: 19px !important
}

.closing {
    background: var(--navy);
    color: #fff;
    text-align: center;
    padding: 65px 0 75px
}

.closing h2 {
    color: #fff
}

.closing p {
    color: #c8e0eb;
    font-size: 17px;
    margin-bottom: 25px
}

.closing-plane {
    font-size: 50px;
    color: var(--yellow)
}

.button.light {
    background: var(--yellow);
    color: var(--navy)
}

footer {
    background: var(--deep);
    color: #c5d8e4;
    padding: 38px 0
}

.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px
}

.footer-brand {
    color: white
}

.footer-inner p {
    font-size: 12px;
    margin: 11px 0 0
}

.footer-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: right;
    font-size: 12px
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid #e5a82b;
    outline-offset: 4px
}

@media(max-width:950px) {
    .navigation {
        gap: 16px
    }

    .hero-inner {
        grid-template-columns: 1fr 1fr
    }

    .hero-art {
        transform: scale(.86);
        transform-origin: bottom center
    }

    .book-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .journey-grid {
        gap: 25px
    }

    .postcard {
        left: 0
    }

    .postcard.second {
        left: 36%
    }
}

@media(max-width:680px) {
    .shell {
        width: min(100% - 32px, 520px)
    }

    .nav {
        height: 72px
    }

    .brand-text {
        font-size: 17px
    }

    .brand-text b {
        font-size: 11px
    }

    .menu-toggle {
        display: block
    }

    .navigation {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 72px;
        background: #fffdf8;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 12px 20px 22px;
        box-shadow: 0 12px 20px #0002
    }

    .navigation.open {
        display: flex
    }

    .navigation a {
        padding: 13px
    }

    .hero-inner {
        grid-template-columns: 1fr;
        gap: 0
    }

    .hero-copy {
        padding: 65px 0 0
    }

    .hero-art {
        height: 300px;
        transform: scale(.75);
        transform-origin: bottom center;
        margin-top: -10px
    }

    .hero-sub {
        font-size: 17px
    }

    h1 {
        letter-spacing: -1.5px
    }

    .section {
        padding: 68px 0
    }

    .section-stamp {
        display: none
    }

    .book-grid {
        gap: 15px
    }

    .cover-wrap {
        padding: 10px 10px 0
    }

    .city-label {
        top: 17px;
        left: 17px
    }

    .book-info {
        padding: 14px
    }

    .book-info h3 {
        font-size: 18px
    }

    .book-info p {
        font-size: 12px
    }

    .coming-soon {
        padding: 14px
    }

    .soon-pill {
        font-size: 9px
    }

    .journey-grid {
        grid-template-columns: 1fr
    }

    .journey-visual {
        min-height: 380px
    }

    .postcard {
        width: 190px;
        left: 8%
    }

    .postcard.second {
        left: 43%
    }

    .postcard img,
    .photo-placeholder {
        height: 240px
    }

    .journey-copy {
        padding-top: 20px
    }

    .about-inner {
        grid-template-columns: 1fr;
        gap: 30px
    }

    .about-illustration {
        width: 220px;
        height: 220px;
        margin: auto
    }

    .footer-inner {
        align-items: flex-start;
        flex-direction: column
    }

    .footer-right {
        text-align: left
    }
}

@media(max-width:380px) {
    .book-grid {
        grid-template-columns: 1fr 1fr
    }

    .book-info h3 {
        font-size: 16px
    }

    .postcard {
        width: 165px
    }

    .postcard.second {
        left: 40%
    }

    .postcard img,
    .photo-placeholder {
        height: 220px
    }
}
/* Homepage hero illustration — overrides only; other sections remain unchanged */
.hero {
    background: linear-gradient(100deg, #fff8e9 0%, #fff1d8 50%, #fbe7d1 100%);
}
.hero::before { display: none; }
.hero-inner {
    grid-template-columns: minmax(360px, 43%) minmax(0, 57%);
    gap: 0;
    min-height: 565px;
}
.hero-copy {
    padding: 55px 28px 65px 0;
}
.hero-art {
    height: 565px;
    align-self: stretch;
    background-image: url("assets/toodletrail-hero.png");
    background-size: cover;
    background-position: 56% center;
    background-repeat: no-repeat;
    border-radius: 0;
    transform: none;
}
.hero-bottom-wave { z-index: 3; }
@media (max-width: 950px) {
    .hero-inner { grid-template-columns: minmax(0, 46%) minmax(0, 54%); }
    .hero-art { height: auto; min-height: 500px; transform: none; }
    .hero-copy { padding-right: 22px; }
    .hero-copy h1 { font-size: clamp(40px, 5.5vw, 62px); }
}
@media (max-width: 680px) {
    .hero-inner { grid-template-columns: 1fr; }
    .hero-copy { padding: 48px 0 38px; }
    .hero-art {
        height: 270px;
        min-height: 0;
        width: 100%;
        margin: 0 0 25px;
        background-position: center;
        border-radius: 12px;
        transform: none;
    }
}

/* BLENDED STORYBOOK HERO — full-bleed image with cream fade, not a split panel */
.hero {
    isolation: isolate;
    background: #fff4df;
}
.hero::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    background-image:
        linear-gradient(90deg,
            #fff5e3 0%,
            rgba(255,245,227,.99) 13%,
            rgba(255,245,227,.94) 21%,
            rgba(255,245,227,.74) 29%,
            rgba(255,245,227,.30) 39%,
            rgba(255,245,227,0) 52%),
        url("assets/toodletrail-hero.png");
    background-size: cover, cover;
    background-position: center, center 52%;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: -1;
}
.hero-inner {
    display: flex;
    align-items: center;
    min-height: 565px;
}
.hero-copy {
    width: min(455px, 43%);
    padding: 50px 0 60px;
}
.hero-copy h1 {
    font-size: clamp(42px, 4vw, 65px);
    letter-spacing: -2px;
}
.hero-sub { font-size: 16px; line-height: 1.6; }
.hero-art { display: none; }
@media (max-width: 950px) {
    .hero-inner { min-height: 515px; }
    .hero-copy { width: min(410px, 53%); padding: 45px 0 55px; }
    .hero-copy h1 { font-size: clamp(39px, 5vw, 56px); }
    .hero::before {
        background-image:
            linear-gradient(90deg, #fff5e3 0%, rgba(255,245,227,.98) 19%, rgba(255,245,227,.78) 35%, rgba(255,245,227,.05) 72%),
            url("assets/toodletrail-hero.png");
    }
}
@media (max-width: 680px) {
    .hero-inner { min-height: 650px; align-items: flex-start; }
    .hero-copy { width: min(100%, 430px); padding: 38px 0 290px; }
    .hero-copy h1 { font-size: clamp(39px, 9vw, 53px); }
    .hero::before {
        background-image:
            linear-gradient(180deg, #fff5e3 0%, rgba(255,245,227,.99) 30%, rgba(255,245,227,.94) 44%, rgba(255,245,227,.2) 65%, rgba(255,245,227,0) 82%),
            url("assets/toodletrail-hero.png");
        background-size: cover, auto 100%;
        background-position: center, 55% bottom;
    }
}

/* Approved header and page-transition refinements — 29 October 2026 */
.brand-mark { font-size: 35px; line-height: 1; }
.navigation { gap: 40px; }
.hero-bottom-wave {
    height: 42px;
    clip-path: none;
    background: #fffdf8;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 24 C270 2 480 46 735 23 S1160 4 1440 25 L1440 70 L0 70 Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 24 C270 2 480 46 735 23 S1160 4 1440 25 L1440 70 L0 70 Z'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
@media (max-width: 950px) { .navigation { gap: 24px; } }
@media (max-width: 680px) { .brand-mark { font-size: 34px; } }

/* Final approved homepage refinements */
/* Keep the straight, clean hero edge selected in Live Server. */
.hero-bottom-wave { display: none; }
/* Reveal the message on the second scrapbook postcard. */
.postcard.second { left: 57%; top: 90px; }
/* Keep postcard lettering within its visible frame. */
.photo-placeholder strong { font-size: 17px; line-height: 1.35; padding: 0 8px; }
/* Match the footer airplane to the header's larger navy mark. */
.footer-brand .brand-mark { color: var(--navy); font-size: 35px; }
/* Give the closing airplane a little more presence. */
.closing-plane { font-size: 62px; line-height: 1.1; }
/* The longer author introduction needs a little more breathing room. */
.about-inner { max-width: 1020px; }
@media (max-width: 950px) {
    .postcard.second { left: 45%; top: 90px; }
}
@media (max-width: 680px) {
    .postcard.second { left: 48%; top: 88px; }
    .photo-placeholder strong { font-size: 15px; }
    .about-inner { max-width: 100%; }
}
@media (max-width: 380px) {
    .postcard.second { left: 43%; }
    .photo-placeholder strong { font-size: 13px; }
}
